某些rails命令比直接HTML更有用

Cra*_*uff 5 html ruby-on-rails-3

有人可以解释为什么我使用rails link_to等而不是直接的HTML代码吗?鉴于他们一旦到达浏览器就会呈现相同的内容 - 这里的实际好处是什么?

<a href="index.html"><img id="logo" src="images/logo.png" alt="logo" /></a>

<%= link_to image_tag("logo.png", :alt => "logo", :id => "logo"), root_path %>              
Run Code Online (Sandbox Code Playgroud)

背景 - 我在模板中更改了这个并停下来想想为什么我这样做?

fwa*_*lch 3

在 Rails 3.1 中,使用 helper 方法将利用asset pipeline。对于 URL,这意味着图像后缀有校验和(这称为指纹识别,至少在上面链接的 Rails 指南中是这样)。这允许将 HTTP 服务器缓存过期时间设置为最大值 - 如果文件内容发生更改,则会产生另一个文件名,从而强制重新下载该文件。否则将从浏览器缓存中提供服务。

此外,如果您在配置中指定资产主机,帮助程序方法将使用此信息 - 请查看image_url.

至于 link_to ,我想你也可以做类似的事情<a href="<%= root_path %>">Link</a>,但在我看来,使用 ruby​​ 代码更优雅。

您永远不应该在 HTML 中对 URL 进行硬编码 - 它可能会发生变化,并且您确实不想浏览源代码并更改对index.htmlhome.html类似内容的所有引用。