0

有没有办法用单独的文件添加供应商第三方库中的所有application.css文件application.js

我可以像下面那样在Vendor文件夹下添加这两个文件吗?require_tree

/*
 *= require_tree assets/stylesheets/.
 */

有人说我应该包含在app/assets/stylsheets/application.css文件中,但我认为还有另一种方式。

4

2 回答 2

0

Try putting this in your javascript file (vendor.js):

//= require_tree ../../../vendor/assets/javascripts/.

and this in your css file (vendor.css):

//= require_tree ../../../vendor/assets/stylesheets/.

You could put these in app/assets/stylesheets/vendor.css or app/assets/javascripts/vendor.js, and then include them in your _head.html.erb partial:

<%= stylesheet_link_tag "vendor", :media => "screen, projection" %>
<%= javascript_include_tag "vendor" %>

Make sure to add these to your assets to be precompiled as well (config/environments/production.rb):

config.assets.precompile += ['vendor.css', 'vendor.js']

Also, cool username! :D

于 2013-10-28T00:58:39.523 回答
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 ./

然后你可以在你的主 application.css 中包含这个库作为

/= require foo

免责声明

  1. 我自己没有使用过上述技术。我只是按照指南进行了假设。

  2. 我自己建议一一要求 CSS,因为 CSS 中的顺序很重要。即使文件在供应商中,您也可以直接在 application.css 中要求它们,例如

    /= require foo/bar
    /= require foo/baz
    
于 2013-10-28T02:13:27.997 回答