为什么我不能在Rails4 App中添加普通链接标记

时间:2014-08-09 11:52:57

标签: ruby-on-rails ruby-on-rails-4

为什么禁止在我的<link href="/assets/stylesheets/bootstrap/bootstrap.css" rel="stylesheet">文件中添加application.html.erb之类的行。我怎么插入它?

1 个答案:

答案 0 :(得分:3)

不是&#34;禁止&#34;直接 - 它只是绕过许多重要的Rails conventions,这可能会产生问题&amp;不一致的行

您要问的内容有几个要素。他们在这里:


<强>布局

首先,您需要在布局中使用正确的helpers

#app/views/layout/application.html.erb
<%= stylesheet_link_tag "bootstrap/bootsrap" %>

其原因与在Rails应用程序的其他部分使用帮助程序相同 - 因为路径在环境和环境之间发生变化。某些&#34;后端&#34;系统的功能发展,你不能依靠使用vanilla HTML调用&#34; Rails-centric&#34;方法

专业提示是,如果任何对路径或资产的引用,则需要use the helpers Rails提供


资产管道

除此之外,您还需要了解&#34;资产管道&#34;的工作原理。

Rails框架的一大好处是,它使您能够以最有效的方式组织资产 - 将它们保存在/assets文件夹中。

虽然很适合开发,但当你进入生产环境时会出现问题--Rails在生产中更喜欢serve static assets,这意味着资产将被预先编译并且访问public文件夹:

  

在生产环境中,Sprockets使用指纹识别方案   概述如上。默认情况下,Rails假定资产已经过预编译   并将由您的网络服务器作为静态资产提供。

为了确保此功能正常,您需要使用路径助手来动态加载文件;因此允许Rails访问系统上的文件

-

<强>清单

强烈建议您查看资产管道的"manifest" feature

#app/assets/stylesheets/application.css
/*
 *= require bootstrap/bootstrap
*/