JavaScript:在环境中更改src文件

时间:2015-05-19 19:11:54

标签: javascript angularjs deployment web-deployment

我有一个Web应用程序,带有一个简单的index.html文件:

<!DOCTYPE html>
    <head>
    </head>
    <body>
        <script src="assets/js/scripts.min.js"></script>
    </body>
</html>

我需要更改静态文件的src,因为在生产环境中,它们将位于与开发中不同的位置。但有一个要求:我无法通过构建来改变它。

所以我正在考虑使用像application.properties这样的本地文件和dev模式的源代码,并使用不同的源在生产中部署相同的文件。

有没有办法在JavaScript中实现?

1 个答案:

答案 0 :(得分:1)

您可以检查头部环境,然后根据当前环境(dev或prod)将脚本插入头部或主体。

<head>
  <script>
    var script = document.createElement('script');
    var devmode = /*condition to check if current enviroment is Development or Production*/ true;
    if (devmode === true) {
      // Development Scripr
      script.src = "https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.8.0/lodash.js";
    } else {
      // Production Script
      script.src = "https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.8.0/lodash..min.js";
    }
    document.head.appendChild(script);
  </script>
</head>

注意:以上解决方案适用于大多数现代浏览器。但是,它建议使用良好的AMD解决方案,如Require.JSyepnopejs(现在与modernizr合并)或$script.js等,因为它们会处理交叉的一些边缘情况浏览器怪癖。