问关于javascript / css URL的静态配置?

时间:2014-06-18 09:19:01

标签: javascript css html5 dojo

我有一个使用DOJO(1.9.x)的单页Web应用程序。它通常从Google CDN加载DOJO库,我的应用程序按预期运行。但是,一些客户提供有限的互联网连接,出于安全(!?)的原因排除了大部分互联网。所以我必须在服务器上本地托管DOJO库。

为此,我应该将URL指向dojo.js的本地副本和相关的CSS文件。由于只有URL的前缀发生变化,我很好奇是否有一个技巧可以通过一些外部CSS文件实现这一点,以便HTML中的URL从这个小CSS中获取它的前缀。通过简单地编辑/更改这个小的CSS文件,One站点将从Google CDN加载DOJO,而另一个站点将加载本地托管的DOJO。

这是否可以使用静态CSS文件?

1 个答案:

答案 0 :(得分:1)

CSS无法实现这一点。

一些替代方案,按优先顺序排列:

  1. SAFEST - 使用本地和远程dojo分发两个版本的页面/ app。
  2. 如果您有任何类型的服务器端呈现,请将其配置为更新dojo URL。
  3. 始终使用您的应用程序分发dojo加载程序。此后,根据您的配置从CDN或本地加载dojo模块。这可能会变得毛茸茸。
  4. 关于选项3的更多细节:

    dojoConfig.js

    //var dojoRoot = ".."; // For LOCAL builds - relative to dojo.js
    var dojoRoot = "//ajax.googleapis.com/ajax/libs/dojo/1.9.3"; // For CDN builds
    
    var dojoConfig = {
        packages: [
            // Depending on your project structure, you may need to 
            // insert entries here for your local packages.
    
            // Here, we override the location for dojo packages
            {
                name: "dojo",
                location: dojoRoot + "/dojo"
            },
            {
                name: "dojox",
                location: dojoRoot + "/dojox"
            },
            {
                name: "dijit",
                location: dojoRoot + "/dijit"
            }
        ]
    };
    

    要使用它的HTML代码段

    <script src="dojoConfig.js"></script>
    <script src="dojo/dojo.js"></script>
    <script>
        require(["dojo/_base/config", "dojo/json"], function(config, JSON) {
            console.log(JSON.stringify(config.packages, null, "\t"));
        });
    </script>