我计划在一个子域下使用 express 运行 2 个 Node 应用程序,nginx 提供静态文件。在我使用的两个 Node 应用程序中:
app.use(express.static(path.join(__dirname)));
我有以下 nginx 配置:
server {
listen 80;
server_name sub.domain.com;
index index.html;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
location / {
proxy_pass http://localhost:232;
}
location ~ ^/(dist/|img/|app/|css/) {
root /var/www/app/main/;
}
location /admin {
proxy_pass http://localhost:233;
rewrite ^/admin /$1 break;
}
location ~ ^/admin/(dist/|img/|app/|css/) {
root /var/www/app/admin/;
access_log off;
expires max;
}
}
通过此设置,“主”应用程序(可在 sub.domain.com 访问)的一切都很好,但对于“管理”应用程序 (sub.domain.com/admin) 而言,提供的静态文件与“主要”应用程序。我应该如何修改我的设置以实现正确的行为?
最佳答案
使用您的开发工具进行检查,以确保静态 Assets 正尝试从正确的 URL 加载;也就是说,http://sub.domain.com/admin/css/
或 /admin/css/
等。生成的路径可能与到他们的项目根目录并显示为 /css/
,因此当浏览器尝试检索它们时,它会转到 http://sub.domain.com/css/
。
关于node.js - 具有多个位置的 node & express + nginx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29905038/