Angular nginx上多个位置的角度投影问题
我愿意在我的nginx上部署2个angular项目。一个项目是主网站,另一个是管理门户。我想在www.example.com上访问该网站,并在上访问管理门户 我为项目制作了两个文件夹:Angular nginx上多个位置的角度投影问题,angular,nginx,Angular,Nginx,我愿意在我的nginx上部署2个angular项目。一个项目是主网站,另一个是管理门户。我想在www.example.com上访问该网站,并在上访问管理门户 我为项目制作了两个文件夹: /var/www/example.com/site /var/www/example.com/admin 以下是我的服务器配置的相关部分: server { listen 80 default_server; listen [::]:80 default_server;
- /var/www/example.com/site
- /var/www/example.com/admin
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/example.com/site;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name example.com;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ /index.html;
}
location /admin {
root /var/www/example.com;
try_files $uri $uri/ /admin/index.html;
}
}
主网站运行良好。然而,当我尝试访问example.com/admin时,我看到一个空白页面。当我打开控制台时,在类似的其他东西中,我看到以下内容:
GET http://www.example.com/main-es2015.7a4cd1828bc2d3953908.js net::ERR_ABORTED 404 (Not Found)
服务器似乎试图在root而不是/admin中查找javascript文件
当我尝试加载一个简单的index.html页面时,里面只有“测试”文本的页面运行良好
我还尝试使用别名而不是根,得到了相同的结果
更新:我发现在使用ng build--prod--base href=/admin/构建项目时,必须将base href设置为/admin/。现在我的js文件是从example.com/admin/加载的。。。。但是,我仍然得到了所有这些js文件的404。您有两个选项:
Referer
HTTP头为第二个应用程序资产使用相对根目录:
更正为
(请参阅Q/A)Referer
HTTP头为第二个应用程序资产使用相对根目录:
更正为
(请参阅Q/A)map $http_referer $root {
~^http://example\.com/admin/ /var/www/example.com;
default /var/www/example.com/site;
}
map $http_referer $prefix {
~^http://example\.com/admin/ /admin;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
index index.html;
server_name example.com;
location / {
root $root;
try_files $uri $uri/ $prefix/index.html;
}
location /admin {
root /var/www/example.com;
try_files $uri $uri/ /admin/index.html;
}
}