JavaScript: 更改环境中的 src 文件

JavaScript: Change src files on environment

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

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

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

所以我正在考虑拥有一个像 application.properties 这样的本地文件,其中包含用于开发模式的源代码,并在生产环境中使用不同的源代码部署相同的文件。

在JavaScript有没有办法做到这一点?

您可以在 head 中检查它是哪个环境,然后根据当前环境(dev 或 prod)将脚本插入到 head 或 body 中。

<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.JS, yepnopejs (which is now merged with modernizr) or $script.js 等。这是因为它们处理了跨浏览器怪癖的一些边缘情况。