Laravel + 惯性 + Vue.js 将 App_URL 复制到 url

Laravel + Inertia + Vue.js Duplicates App_URL into url

我已经在 Laravel 8 Inertia 和 Vue.js 项目上工作了几个星期,没有遇到这个问题。 我的文件位于 C:\Users[[=​​27=]]\laravel。我在打开 127.0.0.1:8080 作为本地开发服务器的地方使用 artisan 命令服务——一切都很好。 我决定是时候将文件传输到 apache 的 http:///localhost/laravel ,我将在其中使用 xampp 打开项目而不是 Laravel php artisan 命令服务。 我已经检查了我的路线,控制器,通过了 Inertia::render() 命令,毫无问题地到达了 app.js。但是当我 运行 createInertiaApp() 我得到 url 部分被复制我猜是惯性而不是 vue.js 这是我 app.js

中的代码
console.log('Still working well without duplicating url')

createInertiaApp({
title: (title) => `${title} - ${appName}`,
resolve: (name) => require(`./Pages/${name}.vue`),
setup({ el, app, props, plugin }) {
    return createApp({ render: () => h(app, props) })
        .use(plugin)
        .component('Link', Link)
        .component('Head', Head)
        .mixin({ methods: { route } })
        .mount(el);
},
});

注意:当我评论 createInertiaApp 代码时,主页 url 将是完美的 http://localhost/laravel,但是当我 运行 createInertiaApp 我得到 http://localhost/laravel/laravel/

我遇到了同样的问题。我正在使用 Nginx,Laravel Jetstream with Inertia stack,我正在本地环境中工作。当我请求 url 时我得到了什么,例如192.168.1.204:5500/helpdesk/public/login 是 192.168.1.204:5500/helpdesk/public/helpdesk/public/login。当我使用 php artisan serve 时,网址显示正常。我注意到问题在于 /vendor/inertiajs/inertia-laravel/src/Response.php toResponse() 方法,特别是在以下代码中:

$page = [
        'component' => $this->component,
        'props' => $props,
        //'url' => $request->getBaseUrl().$request->getRequestUri(),
        'url' => $request->getRequestUri(),
        'version' => $this->version,
    ];

如果将 $request->getBaseUrl().$request->getRequestUri() 替换为 $request->getRequestUri(),问题应该会消失。 但我认为必须有很多 better/cleaner 方法可以做到这一点。我希望其他人可以提供更多帮助。

实际上,当 Laravel 9 的支持被添加到 inertia/laravel 时,上面的代码发生了变化:https://github.com/inertiajs/inertia-laravel/pull/347/commits/bf059248ab73bcaccbea057d0a9fa11446fa0e20.

还有一个为此打开的问题:https://github.com/inertiajs/inertia-laravel/pull/360