2013-04-10 63 views
2

我需要从我一直创建的一些模块加载文件,但dojo加载器不断添加“.js”扩展名。是否可以在Dojo中加载脚本而不添加“.js”扩展名

我一直在使用类似:

require(["dojo/ready","some/module"], function(ready, app) { 
     ready(function() { 

      app.something(); 

     }); 
    }); 

但是它会持续module.js 我想要的东西像url/some/module

我发现使用像“some/module?noext”这样的东西的作品,但没有一些配置选项?

我见过类似于RequestJs和解决它的问题(https://github.com/millermedeiros/requirejs-plugins)。

那么是否有可能阻止dojo添加de js扩展名(后缀)?

+0

无需更改代码或使用插件即可。请参阅https://github.com/dojo/dojo/blob/master/dojo.js#L993。 – 2013-04-10 21:00:19

+0

如果你不介意我的问题,为什么不直接命名你的文件“module.js”? – jumpnett 2013-04-18 23:14:22

回答

1

是的,这是可能的。在some/module之前加上dojo/text!.(包括感叹号和点字符),如下面的代码所示。我特意保持了PHP的目标在下面的例子来证明,它可以是动态的来源,以及:

require(["dojo/ready","dojo/text!.myPHPFiles/somePhpFile.php"], function(ready, app) { 
    ready(function() { 

     app.something(); 

    }); 
}); 

我不知道这是否会允许在结果的任何JS代码是可执行文件(在你上面的例子app.something()可能不会执行)。你可能想要测试和确认。但是,对于加载动态内容(如JSON数据)以用作DataStore来获取小部件(如FilteringSelect),这可能非常有用。

我回答了这个问题,以帮助开发人员解决类似的问题,虽然你的问题发布了一段时间。

相关问题