苗条的路线给我404

时间:2019-08-03 14:43:20

标签: javascript user-interface routing svelte

我在Svelte中为我的应用程序创建了一个简单的路由器。 如果我正在通过导航栏访问链接,则它正在工作。 如果我重新加载页面,它会给我404。为什么?

<Router url="{url}">
 <nav>
   <Link to="/">Home</Link>
   <Link to="charts">About</Link>
 </nav>
 <div>
  <Route path="charts" component="{About}" />
  <Route path="/"><Home /></Route>
 </div>
</Router>

重新加载后: 找不到该本地主机页面未找到以下网址的网页:http://localhost:5000/charts

3 个答案:

答案 0 :(得分:1)

首先,我们将无法访问您的链接,因为它是只能从本地计算机访问的本地链接。

但是我的赌注将是重定向问题。您正在尝试访问服务器上的chart文件,该文件可能不存在,因为您的路由器应该执行该工作。

您需要配置服务器,以便将每条路由都重定向到索引文件,然后路由器将能够通过分析URL来完成其工作。

答案 1 :(得分:1)

您必须确保您的服务器正在为每个路由路径(而不仅仅为index.html)提供/

例如将sirv与Svelte入门项目之一结合使用,您可以在脚本中添加--single标志。

"scripts": {
  "start": "sirv public --single",
  "start:dev": "sirv public --dev --single"
},

答案 2 :(得分:0)

如上述评论之一所述,如果使用汇总,以下脚本组合将在调用 npm run dev 时起作用

"scripts": {
    "build": "rollup -c",
    "dev": "rollup -c -w",
    "start": "sirv public --single"
  }