Я разрабатываю с laravel9 и vue3.
Моя проблема проста, но установка пути не удалась.
Когда я получаю доступ к URL localhost:8080/tasks
Этот URL-адрес возвращает 404, и я получаю следующую ошибку типа
ПОЛУЧИТЬ http://localhost:8000/tasks 404 (не найдено)
Я не знал причины, но когда я переписываю path: /tasks на path /, localhost:8080 возвращает компонент, который мне нужен.
У меня есть следующие файлы.
router.js
import { createRouter, createWebHistory } from "vue-router";
import TaskListComponent from "./components/TaskListComponent.vue";
const router = createRouter({
history: createWebHistory(),
routes: [
{
path: '/tasks',
name: 'tasks.list',
component: TaskListComponent
}
]
})
export default router
App.vue
<script setup>
import HeaderComponent from "./components/HeaderComponent.vue";
</script>
<template>
<HeaderComponent />
<router-view></router-view>
</template>
bootstrap.js
import { createApp } from "vue";
import App from "./App.vue";
import router from "./router.js"
const app = createApp(App);
app.use(router);
app.mount("#app");
У меня нет опыта работы с Laravel, но такого рода проблемы обычно можно решить, направив все пути в Laravel на index.html и позволив Vue выполнить оставшуюся работу.
Я нашел решение. добавьте приведенный ниже код в web.php Route::get('{any?}', function () { return view('welcome'); })->where('any', '.*');






Я создал проект с помощью CLI Vue, а затем приступил к проверке всех соответствующих частей.
Я взял ваш код и применил различные изменения:
main.js, а не bootstrap.js, но без изменений в кодеApp.vue, у меня нет HeaderComponent, но в любом случае это не должно быть проблемойrouter/index.js я изменил только следующее для компонента, так как в любом случае лучше использовать псевдоним, чем относительный путьimport TaskListComponent from "@/components/TaskListComponent.vue"
Запуск сервера с
pnpm dev
дает мне какой-то порт, после перехода по пути /tasks я вижу компонент, как и ожидалось.
Маршрут тоже правильно определен
Вот мой каталог проекта
И у меня нет никаких ошибок в консоли.
Вот общедоступный репозиторий github: https://github.com/kissu/so-v3-working-router
Большое спасибо! но на самом деле я попробовал этот код в CLI создания vue и vue и преуспел. Я пытаюсь с laravel9 и vue3. возможно, это может случиться проблема. stackoverflow.com/questions/71856260/vue-3-router-with-laravel. этот пост та же проблема, что и мой. Спасибо, что приложили все усилия, чтобы реализовать разработку vue с моим кодом.
@sorasakamoto о, я думаю, вы используете Vue внутри Laravel здесь. К сожалению, я не знаю, как его отлаживать, так как у меня нет опыта работы с Laravel, извините.
Следующее в web.php исправило проблему
Route::get('{any?}', function () {
return view('welcome');
})->where('any', '.*');
Пожалуйста, сосредоточьтесь на том, как правильно выделить код, а не писать спам в своем сообщении.