在Rails 3.1中添加一个新的资产path

有谁知道如何添加另一个文件夹到Rails 3.1的资产pipe道?

我想提供app/assets/fonts相同的方式app/assets/images提供。


更新:5-7-2013

只是为未来发现这个问题的人添加一些说明,以明确地添加一个资产path,在你的application.rb文件中:

 config.assets.paths << "#{Rails.root}/app/assets/fonts" 

但是,由于上面的path是在app/assets您不必明确添加它,您只需重新启动您的导轨应用程序,以便链轮可以捡起它。

您将不得不明确地添加app/assetslib/assetsvendor/assets之外的path,只记得当Sprockets在您的应用程序加载时存在的文件夹中select新文件时,根据我的经验,不会在资产path中挑选新的文件夹而无需重新启动。

安德鲁, app/assets/fonts实际上已经在您的资产负载path,以及images 。 所以你可以用同样的方式指向资产: <%= asset_path('/Ubuntu/Ubuntu-R-webfont.eot') %> [1]或者你如何引用你的图片。

我花了一段时间把头围绕在这里。 我仍然不知道如果app/assets/fontsapp/assets/images的文件名相同,会发生什么情况。

[1]假设你在app/assets/fonts/Ubuntu/Ubuntu-R-webfont.eot有一个字体

安德鲁,杰森同意了。 FWIW我把它放在我的config / application.rb旁边

  # Enable the asset pipeline config.assets.enabled = true config.assets.paths << "#{Rails.root}/app/assets/fonts" 

通过创buildapp/assets/imagesapp/assets/fonts他们将被自动添加到资产path。

打开导轨控制台后创build它们并检查:

 y Rails.application.config.assets.paths 

yyaml方法的捷径)

它在不添加path的情况下工作,但要小心使用资源的有效文件名。

 url("#{asset_path 'fontawesome-webfont.eot'}?#iefix") format('embedded-opentype'), ... url("#{asset_path 'fontawesome-webfont.svg'}#FontAwesome") format('svg'); 

例如,在这种情况下,请在字体文件名外面留下?#iefix

我可以确认它的工作原理,而无需在Rails 3.1.0.rc4中添加新的path(假设更高)。 我反弹了我的服务器,你可能也这样做。

创buildassets/fonts文件夹,并添加一些字体,并使用您的CSS文件的主题如下

 @font-face { font-family: Sawasdee; src: url(Sawasdee.ttf); }