我在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
答案 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"
}