首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将变量添加到connect-assets

将变量添加到connect-assets
EN

Stack Overflow用户
提问于 2012-12-06 07:32:36
回答 1查看 273关注 0票数 1

我正在尝试将一些变量从我的app.js文件添加到由connect-assets编译的文件中。

我有一个名为file.ejs的文件

代码语言:javascript
复制
<%- js('code.js') %>
<input type="text" value="Doe">

app.js中,我有:

代码语言:javascript
复制
 app.locals.url = 'http://123.123.123.123'

code.js中,我想根据系统(<%- url %>)添加一些生产/开发变量。当我尝试这样做时,添加的变量被拒绝了,因为connect-assets将它们编译为标签。将变量传递到code.js的正确方法是什么

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-06 16:03:38

code.js被视为静态文件,因此您不能将变量从EJS模板传递到其中。通常,在这种情况下,您需要根据环境传入数据,您需要设置某种可以在code.js中读取的全局配置变量。

您可以为不同的环境设置一组设置,而不是为这样的值全局设置app.locals。假设在代码中的某个地方有这样的代码:

代码语言:javascript
复制
var environments = {
  production: {
    url: 'http://1.1.1.1'
  },
  development: {
    url: 'http://2.2.2.2'
  }
};

当您呈现主页面模板时,或者呈现在容易访问的地方时,无论您所处的环境如何,您都可以传入适当的设置。渲染模板时,需要传递设置。html = new EJS(...).render({settings: settings['production']});

代码语言:javascript
复制
<html>
  <head>
    <script type="text/javascript">
      var AppSettings = <%= JSON.stringify(settings); %>;
    </script>

    ...

然后在您的code.js文件中,您可以直接读取AppSettings.url

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13734447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档