所以,我在rails项目上的下一个问题如下:我正在使用资产管道来提供我的资产。现在我想将内嵌 css包含在带有背景图像的视图中。因为资产管道,我只能使用rails提供的地面辅助工具。但问题是,每个助手(image_tag
除外)都输出了错误的输出。
image_url('work-1.png') # => /images/work-1.png
image_path('work-1.png') # => /images/work-1.png
asset_url('work-1.png') # => /work-1.png
asset_path('work-1.png') # => /work-1.png
image_tag('work-1.png') # => <img ..........> # Only right tag!
是的,that对我没有帮助。以及我发现的关于这个主题的所有其他问题。
很高兴知道这个问题是什么。谢谢!
答案 0 :(得分:2)
image_tag帮助器是列表中唯一实际生成html
标记的方法。
image_url助手实际上使用image_path助手来计算图像的完整路径(例如http://www.example.com/image/image.png
)
image_path助手生成图像的相对路径(例如/images/foo.png)
image_tag("icon") # => <img alt="Icon" src="/assets/icon" />
image_tag("icon.png") # => <img alt="Icon" src="/assets/icon.png" />
image_tag("icon.png", size: "16x10", alt: "Edit Entry") # => <img src="/assets/icon.png" width="16" height="10" alt="Edit Entry" />
image_tag("/icons/icon.gif", size: "16") # => <img src="/icons/icon.gif" width="16" height="16" alt="Icon" />
image_tag("/icons/icon.gif", height: '32', width: '32') # => <img alt="Icon" height="32" src="/icons/icon.gif" width="32" />
image_tag("/icons/icon.gif", class: "menu_icon") # => <img alt="Icon" class="menu_icon" src="/icons/icon.gif" />
image_path("edit") # => "/images/edit"
image_path("edit.png") # => "/images/edit.png"
image_path("icons/edit.png") # => "/images/icons/edit.png"
image_path("/icons/edit.png") # => "/icons/edit.png"
image_path("http://www.example.com/img/edit.png") # => "http://www.example.com/img/edit.png"
答案 1 :(得分:2)
另一个问题回答了我自己。
image_path
帮助器中的路径错误。因此,如果您丢失了图像(资产管道无法找到,则帮助程序将回退到/images
路径。
让我们想象一下我想在我的文档中包含ph/image-1.png
的路径。 image_path('ph/image-1.png')
将使用路径放置正确的目录。否则,如果您要使用image_path('image-1.png')
,它将使用您要使用的图像前面的/images
目录。但这无法找到。这是我的错。
要总结一下,以下是摘要:
image_path('ph/image-1.png') # => /assets/ph/image-1.png
image_path('image-1.png') # => /images/image-1.png