1

我在 Ruby on Rails 的第 5 章中,当 RoR 检测并将所有 css 和 js 文件合并为一个时,我遇到了“资产管道”。

确实,浏览器将不得不发出更少的请求,但与此同时,浏览器可能不得不处理比它应该处理的更多的代码?

例如,我在图库页面中使用了一个滑块 jquery 插件,由于 RoR 将该插件与所有其他 js 文件融合到 1 个 javascript.js 中,该插件将包含在关于页面、主页等...

我可以为分开的页面导入分开的文件吗?如何?

谢谢

4

1 回答 1

3

处理特定页面文件的一种方法是告诉资产管道生成额外文件,然后手动加载它们。对于第一部分,告诉 ROR 生成一个特定文件,您将调整您的config/application.rb文件并添加:

config.assets.precompile += %w(my_special_file1.js my_special_file2.js)

将您要创建的任何文件添加到该列表中。像对待文件一样对待这些文件中的每一个application.js

然后,在您的页面中,您只需使用javascript_include_tag.

虽然给出的关于特定 jQuery 插件的示例可能不会从这种方法中看到太多好处,但作为一般策略,如果您想在网站的不同版本中包含一组不同的代码,它会很有用。例如,可能是管理站点与用户站点,或者移动站点与常规浏览器站点。

正如 depa 所提到的,赞成/反对问题是一个需要辩论的更大话题。但是请注意,javascript+css 文件通常很小,对 gzip 友好,并且使用资产管道,对缓存友好。简而言之,除非您有非常特殊的需要,否则您可能不需要对此进行优化。

于 2013-05-26T03:13:57.867 回答