是否可以使用单独的application.css
和application.js
文件添加供应商第三方库中的所有文件?
我可以将这两个文件添加到Vendor
文件夹和require_tree
下,如下所示吗?
/*
*= require_tree assets/stylesheets/.
*/
有人说我应该包含在app/assets/stylsheets/application.css
文件中,但我认为还有其他方法,如上所述。
答案 0 :(得分:0)
尝试将其放入您的javascript文件(vendor.js)中:
//= require_tree ../../../vendor/assets/javascripts/.
这在你的css文件(vendor.css)中:
//= require_tree ../../../vendor/assets/stylesheets/.
您可以将这些内容放在app/assets/stylesheets/vendor.css
或app/assets/javascripts/vendor.js
中,然后将其包含在_head.html.erb
部分中:
<%= stylesheet_link_tag "vendor", :media => "screen, projection" %>
<%= javascript_include_tag "vendor" %>
确保将这些内容添加到您要预编译的资产中(config / environments / production.rb):
config.assets.precompile += ['vendor.css', 'vendor.js']
另外,很酷的用户名! :d
答案 1 :(得分:0)
你可以稍微调整一下
Sprockets使用名为index(带有相关扩展名)的文件用于特殊目的。
例如,如果您有一个包含许多模块的jQuery库(存储在lib / assets / library_name中),则文件lib / assets / library_name / index.js将用作此库中所有文件的清单。该文件可以包括所有必需文件的列表,或简单的require_tree指令http://guides.rubyonrails.org/asset_pipeline.html#manifest-files-and-directives(见2.2.2)
也就是说,您的供应商CSS目录为vendor/assets/css/foo
,其中包含以下文件
/foo
bar.css
baz.css
然后,您可以使用以下内容创建文件foo/index.css
/= require_tree ./
然后,您可以将此lib包含在主application.css中
/= require foo
免责声明
我自己没有使用上述技术。我只是按照指南进行了假设。
我自己建议逐一要求CSS作为CSS中的顺序。即使文件在供应商中,您也可以直接在application.css中使用它们,如
/= require foo/bar
/= require foo/baz