在Rails 5.1中,如果我们对公共文件夹中的文件使用asset_path,则会出现弃用警告。
DEPRECATION WARNING: The asset "favicon.ico" is not present in the asset pipeline.Falling back to an asset that may be in the public folder.
This behavior is deprecated and will be removed.
所以我尝试了public_asset_path
,但它没有用,是否有助手?
答案 0 :(得分:14)
如果想要使用没有资产管道的帮助方法,需要指定skip_pipeline
选项。
喜欢这个。
image_path("user/favicon.png", skip_pipeline: true)
或者如果想为整个应用程序启用资产回退,
config.assets.unknown_asset_fallback
可以设置为true。
请参阅:http://guides.rubyonrails.org/asset_pipeline.html#raise-an-error-when-an-asset-is-not-found
答案 1 :(得分:-1)
您可以使用Rails.public_path
获取公共目录,然后从那里找到该文件,您也可以使用#{RAILS_ROOT}/public
他们都会做同样的事情。
来源:Getting absolute path to the file inside the public folder in Rails
答案 2 :(得分:-2)
所以我在helpers / application_helper.rb中添加了这个方法
module ApplicationHelper
def public_path(path)
"#{ Rails.env.development? ? 'http://localhost:3000/' : 'https://cdn.mysite.fr/' }#{ path }"
end
end
然后我可以在视图中使用public_path('images/image.jpg')