在生产中使用 Assets 管道并尝试使文件夹不那么困惑时,我设置了嵌套文件夹。我正在尝试链接到子文件夹中的 pdf,但我不确定如何精确调用该文件。
<%= link_to ' | PDF', asset_path(pub.file), :target => "_blank" %>
这在开发中有效。对于生产,我需要调用
pubfiles/pub.file
,但该语法似乎缺少某些内容。我发现它应该是这样的:
<%= link_to ' | PDF', asset_path("pubfiles/#{pub.file}"), :target => "_blank" %>
但是当我尝试使用该链接时,我出错了:
缺少模板人物/表演,应用程序/表演带有 {:locale=>[:en], :formats=>[:pdf], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :jbuilder, :coffee]}。搜索: * "/rails/neuro/app/views"
def find(*args)
find_all(*args).first || raise(MissingTemplate.new(self, *args))
end
def find_all(path, prefixes = [], *args)
在没有文件夹参数设置的开发中,pdf 可以顺利打开。
最佳答案
使用时 asset_path
, rails 将前置 /assets/
到您指定为其参数的路径。
因此请确保您的子文件夹在 assets
内文件夹这样:
-public
-assets
-yourFolder
-yourFile.ext
这样,您可以使用
asset_path
如 asset_path('yourFolder/yourFile.ext')
和 rails 将在 /assets/yourFolder/yourFile.ext
提供您的文件请注意,rails 为文件添加指纹以支持缓存。确保正确编译您的 Assets 并正确定义生产配置。
关于ruby-on-rails - Rails 4 Assets 管道链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36774347/