使用Heroku CDN的HTML <img/>标记?

时间:2013-04-12 04:31:35

标签: ruby-on-rails heroku cdn assets

我有一个关于使用asset_sync和Heroku CDN的问题。在this article中,它说

  

确保您使用的是Rails AssetTagHelper方法(如   IMAGE_TAG)。这将确保您的所有资产都将引用新资产   资产主持人。

这是否意味着我的应用中的任何普通html <img>代码或引用都不起作用?或者也许只是警告带有绝对URL的标签?

编辑:我知道我可以而且应该在views或css中使用image_tag和image_path。我问的是,我有吗?

2 个答案:

答案 0 :(得分:2)

它们可以正常运行,但您需要手动将其指向您同步资产的位置,即亚马逊S3上的一些存储桶。除非您的资产几乎不会改变,否则不建议使用。

您可以在production.rb配置中配置资产路径,如下所示:

config.action_controller.asset_host = "http://assets.domain.com"

然后,无论何时引用asset_path,它都将指向环境配置中定义的主机上的资产。

也许解决方案(不了解你的确切问题)就是做这样的事情:

<img src="<%= asset_path("image.png") %>" />

答案 1 :(得分:1)

您应该使用

 <%= image_path("logo.png") %>

而不是

<img src="<%= asset_path("image.png") %>" />

您可以了解有关此辅助方法here的更多详细信息。另外,如安德鲁所指定,您需要在配置文件中指定asset_host。这是一个小blogpost相同的

此外:

如果您想从亚马逊s3中提取css背景图标/图像,请使用:

 background-image: image_url("icon.png"); // it requires scss extension ie saas and also you must has saas rails gem included.