2016-09-03 63 views
3

我正在嘗試在App Engine標準環境上運行Angular 2應用程序。如何使頁面刷新時使用App Engine的Angular 2路由工作?

handlers: 
- url: /api/.* 
    script: _go_app 

- url: (.*)/ 
    static_files: static\1/index.html 
    upload: static 

- url: (.*) 
    static_files: static\1 
    upload: static 

我可以從//clients/clients/234234點擊一個鏈接,它工作正常:應用程序內航行時,它適用於以下app.yaml配置。

但是,如果我在刷新瀏覽器在非基地路徑例如http://myapp.appspot.com/clients/234234然後我得到一個404錯誤。我想我需要爲所有路徑服務我的index.html,這是我認爲(.*)/(.*)會做的。

如何設置我的處理程序/應用程序,以便我可以使用HTML5路由,而不是讓這種情況發生?

回答

2

我有一堆需要服務的靜態文件,所以我先添加了它們的映射。我也(最重要的)改變了index.html的服務方式:

handlers: 
- url: /api/.* 
    script: _go_app 

- url: /(.*\.svg) 
    static_files: static/\1 
    upload: static/(.*\.svg) 

- url: /(.*\.js) 
    static_files: static/\1 
    upload: static/(.*\.js) 

- url: /(.*\.map) 
    mime_type: application/octet-stream 
    static_files: static/\1 
    upload: static/(.*\.map) 

- url: (.*)/ 
    static_files: static/index.html 
    upload: static 

- url: (.*) 
    static_files: static/index.html 
    upload: static