我在ngsw-manifest.json中设置了一些路由规则,如下所示。问题是,当我运行一个http服务器并直接点击http://localhost:8080/home时,它显示的网址未找到。
{
"static.ignore": [
"^\/assets\/ignore.*$"
],
"routing": {
"index": "/index.html",
"routes": {
"/": {
"match": "exact"
},
"/home": {
"match": "exact"
},
"/listing/must_watch_videos": {
"match": "exact"
},
"^/regex/.*/route$": {
"match": "regex"
}
}
},
"external": {
"urls": [
{
"url": "https://fonts.googleapis.com/css?family=Material+Icons"
}
]
}
}
答案 0 :(得分:0)
当有人请求/ home时,您的服务器无法找到具有该名称的文件或文件夹,并返回错误404.您需要服务器代替服务您的主应用程序.html,就好像它位于这些位置一样。
对于节点http-server,看起来该选项为--spa
。例如:
ws --spa index.html
单页申请
提供单页应用程序(带有应用程序的应用程序) 客户端路由,例如一个React或Angular应用程序)同样简单 指定单个页面的名称:
$ ws --spa index.html服务于http://mbp.local:8000, http://127.0.0.1:8000,http://192.168.0.100:8000默认情况下,请求 对于典型的SPA路径(例如/ user / 1,/ login),返回404 Not Found as a 该位置的文件不存在。将index.html标记为SPA 你创建这个规则:
如果请求静态文件(例如/css/style.css),则提供服务,如果 不(例如/ login)然后服务指定的SPA并处理路线 客户端。
请参阅:https://www.npmjs.com/package/local-web-server#single-page-application
请参阅:https://github.com/lwsjs/local-web-server/wiki/How-to-serve-a-Single-Page-Application-(SPA)