複数のモジュールでソリューションを構築しています。各モジュールはReactJsアプリケーションであり、同じドメインに公開するようにnginxを設定しようとしています。いくつかの例:
http://applicationdomain/承認する
http://applicationdomain/行政
http://applicationdomain/計器盤
http://applicationdomain/販売量
私のnginxパブリックディレクトリは次のとおりです。
|---/var/www
|----/auth
|----/admin
|----/dashboard
|----/sales
ここで、auth、admin、Dashboard、および sales は各プロジェクトのサブフォルダです。
私のnginxサーバーの設定:
server {
listen 9000 default_server;
listen [::]:9000 default_server;
server_name localhost;
index index.html;
location / {
root /var/www/auth;
}
location /admin {
root /var/www;
}
location /dashboard {
root /var/www;
}
location /sales {
root /var/www;
}
}
各プロジェクトのサブフォルダには、以下のような構造があります。
問題は近づく時である。http://applicationdomain/管理者たとえば、アプリケーションはサブフォルダプロジェクトの代わりにルートディレクトリに静的ファイルをロードしようとします。
GET http://localhost:9000/static/js/main.6314dcaa.js net::ERR_ABORTED
正しいことはファイルを取得することです行政サブフォルダは次のとおりです。
GET http://localhost:9000/admin/static/js/main.6314dcaa.js
これに対してnginx設定を変更するより良い方法は何ですか?
答え1
私は次のように各場所のルートセクションを拡張して達成したいことを行うことができると思います。
location /admin {
root /var/www/admin;
}
location /dashboard {
root /var/www/dashboard;
}
location /sales {
root /var/www/sales;
}
しかし、これはただ持っているのと同じです。
location / {
root /var/www/
}
の呼び出しhttp://application-domain/admin
は/var/www/admin
。
/var/www/
最初の解決策は、sayにアクセスする場所ルールがないため、他のものを隠しますhttp://application-domain/private
。