【问题标题】:Page not found issue when directly visit the link in svelte-routing直接访问 svelte-routing 中的链接时找不到页面问题
【发布时间】:2021-08-05 14:46:38
【问题描述】:

我在我的苗条项目中为路由器使用了svelte-routing 模块。 当我通过单击组件中的 navlink 访问该链接时,它运行良好,但是当我通过在浏览器链接中键入它直接访问该链接时,我得到了 page not found 错误。 例如,如果我首先访问localhost:5000 并单击about 链接然后链接更改为localhost:5000/about 并转到about.svelte 组件,但是当我在浏览器中直接输入链接时链接localhost:5000/about 然后它显示page not found 消息。 如果这个问题发生在本地,那么我认为它仍然会在部署后发生。 所以我想解决这个问题。

【问题讨论】:

    标签: routes svelte


    【解决方案1】:

    发生这种情况的原因是因为localhost:5000/about 不存在。

    当您使用导航链接时,它实际上不会转到该位置,只需更改 url 但您会停留在同一页面上。

    要使这项工作正常运行,您需要将所有内容重定向到 index.html,基本上,如果用户转到 yourdomain/about,他们应该转到 yourdomain/index.html,并且 svelte-routing 将负责显示正确的路线。

    如果您使用默认的 svelte 模板,它会使用名为 sirv 的包在 localhost 中进行托管,请在您的 package.json 中更改 start 命令以同时使用标志 -s

    "start": "sirv public -s --no-clear"
    

    这将以 spa 模式启动 sirv 并将所有未知路由重定向到 index.html。

    出于完全相同的原因,您怀疑这在生产中也不起作用是正确的。在那里你还必须添加一个重定向,这取决于你的主机位置,大多数流行主机的文档都有这个信息,如果你找不到,在此处打开一个新问题,因为它不会不再与苗条相关。​​

    【讨论】:

      猜你喜欢
      • 2012-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-24
      • 1970-01-01
      • 2011-10-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多