在所有链接中添加sails应用程序名称作为前缀

时间:2017-02-07 22:22:18

标签: sails.js

我需要在sails配置中添加一个引用应用程序名称的变量,并在所有生成的链接中使用此名称作为css,js,images文件的前缀 sailsjs自动生成这些链接并向页面添加include命令。 那么,我如何修改这一代链接以包含名称作为前缀

2 个答案:

答案 0 :(得分:0)

使用HTML base tag。如果您的应用程序名称为" sails-app-1"然后:

<!doctype html>
<html>
    <head>
        <base href="https://example.com/sails-app-1/">
    </head>
    <body>
        <img src="example-image.gif" width="100" height="100" alt="https://example.com/sails-app-1/example-image.gif">
        <a href="page-1.html" title="Relative paths will be appended to the base tag's href attribute.">https://example.com/sails-app-1/page-1.html</a>
        <a href="/page-2.html" title="Absolute paths will not be appended to the base tag's href attribute.">https://example.com/page-2.html</a>
        <a href="https://example.com/page-3.html" title="Absolute URLs will not be affected.">https://example.com/page-3.html</a>
    </body>
</html>

脚本,链接,图像和锚标记的相对路径将附加到基本标记的href属性。

绝对路径和网址不会受到影响。

答案 1 :(得分:0)

我认为您最理想的解决方案是重写链接或修改项目结构,您已经在项目中了!

我建议您这样做:将Apache作为sails实例的反向代理,将其添加到您的站点配置中:

ProxyPreserveHost on
ProxyRequests Off
ProxyPass /sails-project-1/ http://127.0.0.1:1337/
ProxyPassReverse /sails-project-1/ http://127.0.0.1:1337/
ProxyPass /sails-project-2/ http://127.0.0.1:1338/
ProxyPassReverse /sails-project-1/ http://127.0.0.1:1338/
ProxyPass /sails-project-3/ http://127.0.0.1:1339/
ProxyPassReverse /sails-project-1/ http://127.0.0.1:1339/

您也可能需要在process.env.npm_project_name

中将prefix添加到config/blueprints.js

注意:process.env.npm_project_name仅在您使用npm start而非sails lift

运行应用时可用