And*_*rew 78 ruby-on-rails path ruby-on-rails-3.1 asset-pipeline
有谁知道如何在Rails 3.1中向资产管道添加另一个文件夹?
我想以app/assets/fonts
同样的方式app/assets/images
服务.
更新:5-7-2013
只是为将来发现此问题以明确添加资产路径的人添加一些说明,在application.rb文件中:
config.assets.paths << "#{Rails.root}/app/assets/fonts"
Run Code Online (Sandbox Code Playgroud)
但是,由于上面的路径app/assets
不在你明确添加它,你只需要重新启动rails应用程序,这样Sprockets就可以把它拿起来.
你必须明确地添加是外面的路径app/assets
,lib/assets
或者vendor/assets
,只是记得,虽然链轮拿起新的文件夹是存在,当你的应用程序中加载,在我的经验,它不拿起资产路径新的文件夹,而不重启.
Jas*_*rry 74
安德鲁,app/assets/fonts
实际上已经在您的资产负载路径中images
.所以你可以用同样的方式指向资产:<%= asset_path('/Ubuntu/Ubuntu-R-webfont.eot') %>
[1]或者你如何引用图像.
我花了一些时间来围绕这个问题.如果在app/assets/fonts
和中有一个同名文件,我仍然不知道会发生什么app/assets/images
.
[1]假设你有一个字体 app/assets/fonts/Ubuntu/Ubuntu-R-webfont.eot
Pet*_*ich 43
安德鲁,杰森同意了.FWIW我把它放在我的config/application.rb旁边
# Enable the asset pipeline
config.assets.enabled = true
config.assets.paths << "#{Rails.root}/app/assets/fonts"
Run Code Online (Sandbox Code Playgroud)
通过创建app/assets/images
,app/assets/fonts
它们将自动添加到资产路径中.
创建后打开rails控制台并检查:
y Rails.application.config.assets.paths
Run Code Online (Sandbox Code Playgroud)
(y
是yaml
方法的快捷方式)