node.js - 具有多个位置的 node & express + nginx

标签 node.js express nginx

我计划在一个子域下使用 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/

相关文章:

php - 包含文件无法正常工作 - url 路由

node.js - Nodester 上的数据库

javascript - Node.js Mongoose "object.newProperty"无法向对象添加新属性

javascript - Koajs/nodejs 获取 IP 地址请求 - 只返回本地主机地址

javascript - 使用 module.exports 和回调函数导出对象

elasticsearch - 在Nginx代理后面进行Elasticsearch跨集群搜索

node.js - 使用 Tor 运行 Puppeteer

node.js - 无法使用node.js将blob文件上传到S3

javascript - 在nodeJS中以编程方式添加Express的路径

nginx - 无法访问 minikube 上 pod 上的应用程序