Как использовать маршрутизатор Vue внутри Laravel?

Я разрабатываю с 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");

Пожалуйста, сосредоточьтесь на том, как правильно выделить код, а не писать спам в своем сообщении.

kissu 30.10.2022 10:42

У меня нет опыта работы с Laravel, но такого рода проблемы обычно можно решить, направив все пути в Laravel на index.html и позволив Vue выполнить оставшуюся работу.

Duannx 31.10.2022 02:57

Я нашел решение. добавьте приведенный ниже код в web.php Route::get('{any?}', function () { return view('welcome'); })->where('any', '.*');

sora sakamoto 02.11.2022 06:31
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
2
3
101
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Я создал проект с помощью 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-larav‌​el. этот пост та же проблема, что и мой. Спасибо, что приложили все усилия, чтобы реализовать разработку vue с моим кодом.

sora sakamoto 30.10.2022 12:57

@sorasakamoto о, я думаю, вы используете Vue внутри Laravel здесь. К сожалению, я не знаю, как его отлаживать, так как у меня нет опыта работы с Laravel, извините.

kissu 30.10.2022 13:00
Ответ принят как подходящий

Следующее в web.php исправило проблему

Route::get('{any?}', function () {
    return view('welcome');
})->where('any', '.*');

Другие вопросы по теме