Github 页面上部署 Svelte 应用程序时刷新时未显示路由

Routes not displaying on Refresh on Deploying Svelte App on Github pages

我正在寻找解决“刷新对组件不起作用”问题的方法。我发现它可以通过在 package.json 中添加 -s 来实现,如此处 https://github.com/EmilTholin/svelte-routing/issues/32#issuecomment-495923463.

但是当我部署我的应用程序时,我发现它在生产版本中不起作用。知道为什么吗?

我只是希望我的 Svelte SPA 页面在我这样做时能够刷新。

您需要为产品设置做基本相同的事情。您的服务器需要为任何 URL 服务 index.html,而不是 404,使用 SPA,让客户端路由器接管。

你如何做到这一点完全取决于你的生产开发服务器。你有用于 express 等的中间件,通常独立的 Web 服务器有一个选项,通常称为 fallbacksingle 或类似的东西......

您如何在产品中提供您的应用程序?

我发现通过创建一个 200.html 文件(基本上与 index.html 具有相同的内容),一切都有效。将该文件添加到您的生产构建文件夹。

正如@rixo 所提到的,它没有记录(只是 404.html,他们最近一定添加了 200.html),但这就是你如何告诉 gh 页面将索引发送到任何请求未知页面。

我知道这已经过时了,但我也想解决这个问题。我通过在 netlify 中创建一个 404.html 并将其添加到 public 文件夹中的生产构建来修复它。然后我添加了这些脚本:

"开始": "sirv public -s", "start:dev": "sirv public --dev -s"

到package.json。 适合我。