我在Ruby on Rails的第5章中,当R-o-R检测到所有css和js文件时,我遇到了“资产管道”。
浏览器确实需要减少请求,但与此同时,浏览器可能需要处理的代码多于应有的数量?
例如,我在gallery页面中使用了一个滑块jquery插件,因为RoR将插件与所有其他js文件融合为1个javascript.js,该插件将包含在about page,home page等中...... / p>
我可以为分隔的页面导入分隔的文件吗?怎么样?
由于
答案 0 :(得分:3)
执行特定于页面的文件的一种方法是告诉资产管道生成额外的文件,然后手动加载它们。对于第一部分,告诉ROR生成特定文件,您需要调整config/application.rb
文件并添加:
config.assets.precompile += %w(my_special_file1.js my_special_file2.js)
将要创建的所有文件添加到该列表中。像处理application.js
文件一样处理每个文件。
然后,在您的页面中,您只需使用javascript_include_tag
加载所需的文件即可。
虽然给出关于特定jQuery插件的示例可能不会从这种方法中获得太多好处,但作为一般策略,如果您想在网站的不同版本上包含一组不同的代码,这将非常有用。例如,管理站点与用户站点,或移动与常规浏览器站点。
正如depa所提到的那样,pro / con问题是一个更大的争论话题。但请注意,javascript + css文件通常很小,对gzip友好,并且对于资产管道,缓存友好。简而言之,除非您有特殊需要,否则您可能不需要优化它。