2017-10-05 16 views
1

以下に示すように、ngsw-manifest.jsonにいくつかのルーティングルールを設定しました。問題は、私がhttpサーバを稼働していて、直接http://localhost:8080/homeを押すとURLが見つからないということです。Angular 4 AppをPWAに変換する

{ 
"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

あなたは解決策を発見しましたか?私は同じ問題で立ち往生しています。 –

+1

@FlorianWidtmann Etagを維持してサーバーにアプリケーションをデプロイしたときに動作していますが、ローカルでは動作しません。 –

+0

問題は特定の問題であり、既存の角度アプリをPWAに変換することではありません。質問のタイトルを変更することを検討してください。 – notANerdDev

答えて

0

誰かがあなたのサーバーがその名前のファイルやフォルダを見つけることができません/ホーム要求し、エラー404を返した場合、それはそれらの場所に存在するかのようにあなたが代わりにサーバーメインアプリの.htmlをするようにサーバーを必要とします。

ノードhttp-serverの場合、オプションは--spaのように見えます。例えば:

ws --spa index.html

単一ページアプリケーション

単一ページアプリケーションは、( クライアント側ルーティングとアプリ、例えば、Aが反応または角度APP)を指定 ほど自明であるサービングあなたの単一のページの名前:

$ WS --spa index.htmlをhttp://mbp.local:8000でサービング、 http://127.0.0.1:8000、デフォルトではhttp://192.168.0.100:8000、再典型的なSPAパス(例えば、SPA)についてはクエスト /user/1、/ login)return 404が見つかりません。その場所にある ファイルが存在しません。 SPA としてのindex.htmlをマークすることにより、あなたはこのルールの作成:静的ファイルが要求されている場合 ない(例:/ログイン)が、指定したSPAを果たすならば、それを提供する、その後(例えば/css/style.css)

をクライアント側の ルートを処理します。

参照: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)

+0

いいえ、index.htmlを返していません。はい、それは私が期待している動作ですが、動作していません –

+0

クロームブラウザコンソールが閉じると動作しています –

+0

どのようなサーバー/プラットフォームを使用していますか? –

関連する問題