【问题标题】:Routes not displaying on Refresh on Deploying Svelte App on Github pages在 Github 页面上部署 Svelte 应用程序时刷新时未显示路由
【发布时间】:2021-06-01 02:48:02
【问题描述】:

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

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

我只想让我的 Svelte SPA 页面在我执行此操作时刷新。

【问题讨论】:

    标签: routes single-page-application github-pages svelte svelte-3


    【解决方案1】:

    您需要对 prod 设置执行基本相同的操作。您的服务器需要使用 SPA 为任何 URL 提供 index.html,而不是 404,以让客户端路由器接管。

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

    您如何在 prod 中为您的应用程序提供服务?

    【讨论】:

    • 我没有为 SPA 使用服务器。我已经完全在客户端开发了它,并在其中集成了几个 API。这就是为什么我觉得很困难,因为我没有使用任何 Express 服务器或一般的任何服务器。
    • 您必须以某种方式拥有一台服务器,如果不是由您控制的服务器,则由您的托管解决方案提供。即使您的应用程序完全在客户端运行,客户端的文件也必须传输到客户端。您想如何/在哪里部署产品?
    • 我打算将它部署到 github 页面。另外,我发现通过创建一个 200.html 文件(基本上与 index.html 具有相同的内容),一切正常。你知道这是为什么吗?
    • 似乎没有记录(只有 404.html,他们最近肯定添加了 200.html),但这就是您告诉 gh pages 将索引发送到对未知页面的任何请求的方式。这就是你问题的答案,恭喜!您应该在问题标题中提及 gh pages,将您的解决方案作为答案发布并接受。可能对其他人有用。
    • 当然可以。太感谢了。非常感谢您帮助我。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      我知道这很旧,但我也在寻求解决这个问题。我通过在 netlify 中创建 404.html 并将其添加到公用文件夹中的生产版本来修复它。然后我添加了这些脚本:

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

      到 package.json。 对我有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-08-17
        • 2021-01-08
        • 1970-01-01
        • 2021-12-14
        • 2021-08-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多