支持 Laravel.io 的持续发展 →

如何更改 Inertia.js 的默认 SSR 端口

2024年5月21日 阅读时间:3分钟

最近,我需要在同一服务器上运行两个Inertia.js应用程序,并且这两个应用程序都使用SSR。为了实现这一点,必须使用不同的端口,但是有一个陷阱可能会导致初始加载数据错误。

总结:仅更改ssr.ts文件中的端口是不够的,您还需要通知Laravel使用新选择的端口。为此,您必须发布Inertia配置并在其中更改它。

第一个应用程序

所以我需要在同一服务器上运行两个Inertia.js应用程序,因为两种情况下我都关心SEO,所以我希望使用SSR。我正在使用Laravel和Laravel Forge,因此第一个应用程序的安装非常简单直接。只需创建一个新站点,安装仓库并启用SSR。您可以使用位于应用程序选项卡中的应用程序内置面板切换Inertia SSR。这将为您创建一个新的守护进程(php artisan inertia:start-ssr),一切正常。

第二个应用程序

到目前为止一切都很好。您可以检查您的应用程序,检查源代码,一切都应该按预期工作。那么,让我们用第二个应用程序重复同样的步骤。一切都相同,看起来它正在正常工作。但是,如果您检查新的守护进程日志,您会发现一些关于地址正在使用的错误。因此,显然我们需要更改端口,首先我们应该查看文档。文档中并不完全清楚如何找到说明,但是在旧文档中有一个部分,在那里有以下的注意

默认情况下,Inertia的SSR服务器将在端口13714上运行。然而,您可以通过向createServer方法提供一个第二个参数来修改这一设置。

所以我们开始了我们的ssr.ts文件,并可以将端口作为createServer方法的第二个参数提供。所以createServer(..., 13715),看吧!我们完成了,对吗?!不幸的是,还没有。如果您不小心部署了它,看起来像是在正常工作。但如果您仔细检查真正的源代码(在Chrome中:查看 -> 开发者 -> 查看源文件)您可以看到来自第一个应用程序的数据!怎么会这样?我们仍然需要告诉Laravel实际上使用新的端口与SSR服务器通信。

更改Laravel的端口

在尝试找出如何更改Laravel的端口时,我偶然发现了一篇极好的文章,我必须对作者表示极大的敬意,因为他们让我能够迅速修复这个问题,而不会浪费太多时间。

关键在于使用以下命令发布Inertia的配置文件

php artisan vendor:publish --provider "Inertia\ServiceProvider"

然后更改以下属性的url端口号ssr.url

'ssr' => [
    'url' => 'http://127.0.0.1:13715',
],

就这些。现在一切都应该正常工作了。

我希望这能帮助一些避免这个错误,并快速解决这个问题。再次感谢moay的文章,下次再见,

Tony。

最后更新2个月前。

driesvints, haosmos 喜欢这篇文章

2
喜欢这篇文章吗? 让作者知道并给他们点赞!
tonymasek (Tony Masek) 我喜欢制造东西。不幸的是,我不会画画、唱歌或弹乐器。但幸运的是,我对编程有些了解。

你可能还喜欢的其他文章

2024年3月11日

如何使用Larastan将你的Laravel应用从0升级到9

在Laravel应用执行前就能找到bug,这得益于Larastan,它...

阅读文章
2024年7月19日

无需Trait规范API响应

我发现大多数用于API响应的库都是使用Trait实现的,并且...

阅读文章
2024年7月17日

通过Discord通知在Laravel项目中收集反馈

如何在Laravel项目中创建一个反馈模块,并在接收到一条消息...

阅读文章

感谢这些 极具影响力的公司 对我们的支持

您的标志在这里?

© 2024 Laravel.io - 版权所有。