仕事でオンラインマニュアルを作成する作業してたとき、最終チェックのため公開したときの動作確認を取ることに。
特にテスト環境がなかったため、自分で作ることにした。会社ではAzureが使い放題だったので、練習がてら利用。
ネット上に公開されちゃうので、Basic認証も使う。
やったこと
やったことを以下にまとめる。詳細は次の見出しで。
AppServiceを使ってWebAppを構築。
ランタイムは.NET Core 3.1
Basic認証の設定
HTMLのファイルをアップロード
jsonファイルを読み込めるように設定(manifest.jsonを読み込ませるため)
詰まったところ
Basic認証
htaccess作ればいいだろうと思ったけど、甘かった。ランタイムをphpにしても何故かhtaccess読み込まない。こんなことに時間使いたくなかったので、ググって出てきた情報から対応。
以下、PHPResources内のファイルを取得して配置。
https://github.com/nabehiro/HttpAuthModule
詳しくは以下参照
Azure App Service WebAppsで運用しているサイトにベーシック認証をかける方法
配置後、manifest.jsonを読み込まなくなってしまうため、htmlファイルの以下を修正。
<link rel="manifest" href="manifest.json" crossorigin="use-credentials">
※crossorigin="use-credenstials"を付け足した感じ。
HTMLのファイルアップロード
AppService→サービス名→デプロイメント→デプロイセンター→FTPS資格情報
上記よりFTPを利用してファイルアップロード。
最初デプロイセンターの設定よりgithub使用したが、すごい時間かかった。HTMLがないので、.NETだとビルドできるようにしないといけないし。
FTPでzipをアップロード後、コンソールを利用し、unzipコマンドで解凍しました。
jsonファイルを読み込めるように設定(manifest.jsonを読み込ませるため)
WebAppsは最初はjsonファイルを読み込まないらしい。
なので、web.configを編集。
※以下、<staticContent>の部分。
<system.webServer>
<modules>
<add type="HttpAuthModule.HttpAuthModule" name="HttpAuthModule" />
</modules>
<staticContent>
<remove fileExtension=".json" />
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
</system.webServer>