
私はDockerイメージ(ウェブサーバーとしてNginxを使用)として構築されたAngularJsアプリ(v1)を持っています。それは以下の構造を持っています
-app
--build
--js
|-app.min.js
|-login.min.js
--styles
|-app.min.css
|-login.min.css
--assets
--images
--fonts
--index.html
--login.html
私は次のものを持っていますnginx の設定
server {
listen 80;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /usr/share/nginx/html;
location /content {
rewrite ^/content$ /index.html;
}
location /content/login {
rewrite ^/content/login$ /login.html;
}
}
これはインデックス.htmlファイル
<html lang="en" data-ng-app="app">
<header>
<script src="build/js/app.min.js"></script>
<link rel="stylesheet" href="build/styles/app.min.css">
</header>
<body>
...
</body>
</html>
そしてログイン.htmlファイル
<html lang="en" data-ng-app="app-login">
<header>
<script src="build/js/login.min.js"></script>
<link rel="stylesheet" href="build/styles/login.min.css">
</header>
<body>
...
</body>
</html>
私が達成したいこと
http://localhost:3000/content
ユーザーがアプリにアクセスすると、 が配信されindex.html
、login.html
ユーザーが にアクセスすると、 が配信されますhttp://localhost:3000/content/login
。
/content
とは両方とも/content/login
、Angularjs アプリには存在しないルートです。
何を手に入れたか
http://localhost:3000/content/login
アプリにアクセスすると、次の2つのファイルが読み込まれます
http://localhost:3000/content/build/js/login.min.js
http://localhost:3000/content/build/styles/login.min.css
どちらも404エラーコードが表示されました。
何を期待していたのか
http://localhost:3000/content/build/js/login.min.js
Nginxに、ファイルの内容を含むファイルを直接提供してもらいたいですhttp://localhost:3000/build/js/login.min.js
。これは CSS ファイルにも適用されます。