将variables添加到连接资产
我试图从我的app.js文件中添加一些variables到由connect-assets编译的文件中。
我有一个名为file.ejs
的文件
<%- js('code.js') %> <input type="text" value="Doe">
在app.js
我有:
app.locals.url = 'http://123.123.123.123'
在code.js
我想根据系统添加一些生产/开发variables( <%- url %>
)。 当我尝试这样做时,添加的variables被拒绝,因为connect-assets正在将它们编译为标记。 将variables传入code.js
的正确方法是什么?
code.js
被视为一个静态文件,所以你不能从EJS模板传入variables。 通常在这种情况下,你正在传递的是基于环境的数据,你可以设置一些你可以在code.js
读取的全局configurationvariables。
而不是像这样的值设置app.locals
,你可以在不同的环境中设置一些设置。 在你的代码中说你有这个:
var environments = { production: { url: 'http://1.1.1.1' }, development: { url: 'http://2.2.2.2' } };
当您渲染主页面模板或者可以轻松访问的地方时,无论您处于什么环境,都可以传递适当的设置。渲染模板时,您将传递设置。 html = new EJS(...).render({settings: settings['production']});
<html> <head> <script type="text/javascript"> var AppSettings = <%= JSON.stringify(settings); %>; </script> ...
然后在你的code.js
文件里面,你可以直接读取AppSettings.url
。