我正在使用requireJS加载脚本。它在文档中有此详细信息:
用于模块名称的路径不应包含.js扩展名,因为路径映射可能用于目录。
在我的应用程序中,我将所有脚本文件映射到配置路径中,因为它们是在运行时动态生成的(我的脚本以类似的方式开始运行,order.js
但变成类似的状态order.min.b25a571965d02d9c54871b7636ca1c5e.js
(这是文件内容的哈希,出于缓存无效的目的) 。
在某些情况下,require将在这些路径的末尾添加第二个.js扩展名。尽管我在服务器端生成了动态路径,然后填充了配置路径,但是我必须编写一些额外的JavaScript代码,以.js
从有问题的文件中删除扩展名。
在阅读requireJS文档时,我真的不明白为什么您要将路径映射用于目录。这是否意味着可以通过一次调用以某种方式加载整个目录中的文件?我不明白
有人知道是否可能只需要强制停止将.js添加到文件路径中,这样我就不必修改了。
谢谢。
更新:根据要求添加了一些代码示例。
这在我的HTML文件中(这是一个Scala项目,因此我们不能将这些变量直接写入.js
文件中):
foo.js.modules = {
order : '@Static("javascripts/order.min.js")',
reqwest : 'http://5.foo.appspot.com/js/libs/reqwest',
bean : 'http://4.foo.appspot.com/js/libs/bean.min',
detect : 'order!http://4.foo.appspot.com/js/detect/detect.js',
images : 'order!http://4.foo.appspot.com/js/detect/images.js',
basicTemplate : '@Static("javascripts/libs/basicTemplate.min.js")',
trailExpander : '@Static("javascripts/libs/trailExpander.min.js")',
fetchDiscussion : '@Static("javascripts/libs/fetchDiscussion.min.js")'
mostPopular : '@Static("javascripts/libs/mostPopular.min.js")'
};
然后在我的main.js
:
requirejs.config({
paths: foo.js.modules
});
require([foo.js.modules.detect, foo.js.modules.images, "bean"],
function(detect, images, bean) {
// do stuff
});
在上面的示例中,我必须使用字符串“ bean”(指的是require路径)而不是我的直接对象(就像其他人使用一样foo.js.modules.bar
),否则我将得到额外的.js
附加内容。
希望这是有道理的。
requirejs的noext插件:
加载脚本时不附加“ .js”扩展名,对动态脚本很有用...
文献资料
检查
examples
文件夹。您可能需要的所有信息都将在注释内或示例代码本身上。基本用法
将插件放入
baseUrl
文件夹(通常与main.js文件位于同一文件夹)或为插件位置创建别名:require.config({ paths : { //create alias to plugins (not needed if plugins are on the baseUrl) async: 'lib/require/async', font: 'lib/require/font', goog: 'lib/require/goog', image: 'lib/require/image', json: 'lib/require/json', noext: 'lib/require/noext', mdown: 'lib/require/mdown', propertyParser : 'lib/require/propertyParser', markdownConverter : 'lib/Markdown.Converter' } }); //use plugins as if they were at baseUrl define([ 'image!awsum.jpg', 'json!data/foo.json', 'noext!js/bar.php', 'mdown!data/lorem_ipsum.md', 'async!http://maps.google.com/maps/api/js?sensor=false', 'goog!visualization,1,packages:[corechart,geochart]', 'goog!search,1', 'font!google,families:[Tangerine,Cantarell]' ], function(awsum, foo, bar, loremIpsum){ //all dependencies are loaded (including gmaps and other google apis) } );
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句