web-dev-qa-db-ja.com

展開済みangularアプリからAzure Webアプリへ-既定のAzureページを表示

angularアプリケーションをホストするためにAzureでWebアプリを作成しました。以下のようにランタイムを選択しました:

enter image description here

しかし、私のローカル設定の詳細:

  1. ノードのバージョン:v13.0.1
  2. 角度バージョン:8.2.11

Anguler cliを使用してアプリケーションを作成してから、ng build --prodを実行してdistを作成しました。次に、AngularアプリをWebアプリにデプロイするために、以下の方法を試しました。

しかし、URLを参照すると、次のようになります。 https://eventzweb.azurewebsites.net/ 次のページは表示されますが、angularアプリからのページは表示されません。

enter image description here

なぜこれが起こっているのでしょうか?ページが表示されないのはなぜですか?

よろしくお願いします。

この問題を解決する別の方法があります。バックストーリー: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」を参照します。

これで、すべて完了です。

0
lulalagulu