angularアプリケーションをホストするためにAzureでWebアプリを作成しました。以下のようにランタイムを選択しました:
しかし、私のローカル設定の詳細:
Anguler cliを使用してアプリケーションを作成してから、ng build --prodを実行してdistを作成しました。次に、AngularアプリをWebアプリにデプロイするために、以下の方法を試しました。
しかし、URLを参照すると、次のようになります。 https://eventzweb.azurewebsites.net/ 次のページは表示されますが、angularアプリからのページは表示されません。
なぜこれが起こっているのでしょうか?ページが表示されないのはなぜですか?
よろしくお願いします。
この問題を解決する別の方法があります。バックストーリー:WebアプリOS:Linux、ランタイムスタック:Node.js
ここからコンテナにサインインできます。 sslログインエントリ
pm2 list
を実行すると、「default-static-stie」という静的サイトが既に存在します。 「/ opt/startup」にあります。次にpm2 show default-static-stie
を実行すると、関連フォルダーを参照して詳細を確認できます。
コンソールのメッセージが示唆するように、「「/ home」外のデータは保持されません。」
したがって、必要なのは、既存のプロジェクトを「/ home」フォルダにコピーすることだけです。 「startup.sh」と「default-static-site.js」に変更を加えます。
startup.sh:
#!/bin/sh
#turn off the default static site
pm2 stop default-static-site
# Enter the source directory to make sure the script runs where the user
expects
cd "/home/site/wwwroot"
export NODE_PATH=$(npm root --quiet -g):$NODE_PATH
if [ -z "$PORT" ]; then
export PORT=8080
fi
pm2 start -n my-static-site --no-daemon /home/my-static-site/default-static-site.js
default-static-site.js:
server.use('/', express.static('/home/site/wwwroot', options));
ちなみに、上記の行の前にコードスニペットを追加します。
server.all('/*', function(req, res, next) {
// Just send the index.html for other files to support HTML5Mode
res.sendFile('index.html', { root: '/home/site/wwwroot' });
});
最後に: 起動コマンドを入力
ここに起動コマンドを入力して、「/ home/my-static-site/startup.sh」を参照します。
これで、すべて完了です。