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。
我已经在 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。