Rails 5.1 : url public 文件夹中文件的助手
Rails 5.1 : url helper for files in public folder
在 Rails 5.1 中,如果我们对 public 文件夹中的文件使用 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
,但是不行,有帮手吗?
你可以使用 Rails.public_path
获取 public 目录,然后从那里找到文件,你也可以使用 #{RAILS_ROOT}/public
它们都做同样的事情。
来源:Getting absolute path to the file inside the public folder in Rails
如果想在没有资产管道的情况下使用辅助方法,需要指定skip_pipeline
选项。
像这样。
image_path("user/favicon.png", skip_pipeline: true)
或者如果想为整个应用程序启用资产回退,
config.assets.unknown_asset_fallback
可以设置为真。
参见:http://guides.rubyonrails.org/asset_pipeline.html#raise-an-error-when-an-asset-is-not-found
所以我在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')
在 Rails 5.1 中,如果我们对 public 文件夹中的文件使用 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
,但是不行,有帮手吗?
你可以使用 Rails.public_path
获取 public 目录,然后从那里找到文件,你也可以使用 #{RAILS_ROOT}/public
它们都做同样的事情。
来源:Getting absolute path to the file inside the public folder in Rails
如果想在没有资产管道的情况下使用辅助方法,需要指定skip_pipeline
选项。
像这样。
image_path("user/favicon.png", skip_pipeline: true)
或者如果想为整个应用程序启用资产回退,
config.assets.unknown_asset_fallback
可以设置为真。
参见:http://guides.rubyonrails.org/asset_pipeline.html#raise-an-error-when-an-asset-is-not-found
所以我在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')