首页 > 解决方案 > 如何使用 proxypass 在子文件夹上配置 Sailsjs?

问题描述

我在 Nginx 服务器上运行 Laravel 并想在子文件夹 example.com/sailsapp/ 上设置 Sailjs

在 nginx 配置中,我有以下内容

location /sailsapp {
    proxy_pass http://localhost:1337;
}

通过访问 example.com/sailsapp/ 我希望 '/': { view: 'pages/homepage' },路由加载主页,但我得到 404。

如果我更改 Sailjs '/sailsapp': { view: 'pages/homepage' },主页视图加载正常,但问题是所有资产都指向 example.com 而不是example.com/sailsapp我的主要问题。

我如何配置sails应用程序,所以它实际上会知道应用程序的真正基础是什么,而不是以顶级域为基础。

谢谢

标签: node.jsnginxsails.jsproxypass

解决方案


我已经想出了如何实现我所需要的。

在 Nginx 配置中,我需要添加重写,以简单地重写/sailsapp/(.*)/$1 这允许正确代理请求。

location /sailsapp {
        rewrite /sailsapp/(.*) /$1  break;
        proxy_pass http://localhost:1337;
}

尽管如此,它仍然对资产没有帮助。

为了在 Sails 上配置自动注入资产,我去了tasks/config/sails-linker.js 并更改fileTmpl: '<script src="%s"></script>',fileTmpl: '<script src="/sailsapp%s"></script>'

不确定我是否会遇到更多问题,但这实际上让我可以继续构建我的应用程序。


推荐阅读