当我刷新我的网站,我得到了404。这是与Angular2和firebase

当我刷新我的网站,我得到了404。这是与Angular2,打字稿和firebase。

我已经部署到我的Angular2应用程序firebaseapp。

路线似乎改变了,但当我刷新浏览器redirect到404页面。

当我刷新本地这不会发生。

我是否缺less路线设置或Firebase设置?

这是我的firebase.json文件:

{ "firebase": "test", "public": "src", "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ] } 

对于Firebase托pipe,有关redirect和重写的文档位于: https : //www.firebase.com/docs/hosting/guide/url-redirects-rewrites.html

从那里:

如果要为多个url显示相同的内容,请使用重写。 重写对模式匹配特别有用,因为您可以接受与模式匹配的任何URL,并让客户端代码决定要显示的内容。

您可能会在该页面上寻找第一个重写示例:

 rewrites": [ { "source": "**", "destination": "/index.html" } ] 

这是Web服务器为任何传入请求提供/index.html的指令,不pipepath是什么。

我认为你使用Angular2路由的默认模式(即HTML5LocationStrategy )。 在这种情况下,您需要在Web服务器上进行一些configuration,以便为每个路由所对应的每个URL加载index.html (您的入口点文件)。

如果你想切换到HashBang方法,你需要使用这个configuration:

 import {bootstrap} from 'angular2/platform/browser'; import {provide} from 'angular2/core'; import {ROUTER_PROVIDERS} from 'angular2/router'; import {LocationStrategy, Location, HashLocationStrategy } from 'angular2/router'; import {MyApp} from './myapp'; bootstrap(MyApp, [ ROUTER_PROVIDERS, provide(LocationStrategy, {useClass: HashLocationStrategy} ]); 

在这种情况下,刷新页面时,将再次显示。

希望它能帮助你,Thierry