Stylesheet_link_tag:all versus:media => all

时间:2013-04-04 08:12:18

标签: ruby-on-rails ruby ruby-on-rails-3 scaffolding stylesheet-link-tag

我从脚手架创建了一个新的Rails应用程序,但是教程声称会出现以下内容:

<%= stylesheet_link_tag    "application", :media => "all" %>

我得到了:

<%= stylesheet_link_tag    :all %>

他们之间有什么区别?我应该使用哪个?为什么呢?

4 个答案:

答案 0 :(得分:22)

使用

<%= stylesheet_link_tag    "application", :media => "all" %>

将包含名为 application.css 的样式表,您可以使用 application.css.sass application.css.scss 等文件或任何其他扩展和rails将使用正确的样式表引擎编译css文件并提供application.css文件。

属性“media = all”实际上是一个css属性,这意味着所有媒体都会包含css,例如浏览网站时,打印屏幕时等等。可以在this link.

上找到有关媒体属性的更多信息

使用

<%= stylesheet_link_tag    :all %>

您将在 app / assets / stylesheets 目录中包含所有样式表。

您可以在this link.

上找到更多信息

答案 1 :(得分:1)

请查看api docs。在这里你有一些引用:

stylesheet_link_tag :all # =>
  <link href="/stylesheets/style1.css"  media="screen" rel="stylesheet" type="text/css" />
  <link href="/stylesheets/styleB.css"  media="screen" rel="stylesheet" type="text/css" />
  <link href="/stylesheets/styleX2.css" media="screen" rel="stylesheet" type="text/css" />


stylesheet_link_tag "style", :media => "all" # =>
  <link href="/stylesheets/style.css" media="all" rel="stylesheet" type="text/css" />

答案 2 :(得分:0)

第二个不是关于媒体类型,它的意思是包括非资产管道项目中stylesheets目录中的所有.css。

stylesheet_link_tag :all # =>
<link href="/stylesheets/style1.css"  media="screen" rel="stylesheet" type="text/css" />
<link href="/stylesheets/styleB.css"  media="screen" rel="stylesheet" type="text/css" />
<link href="/stylesheets/styleX2.css" media="screen" rel="stylesheet" type="text/css" />

答案 3 :(得分:0)

stylesheet_link_tag还接受生成的媒体属性的参数

 < %= stylesheet_link_tag :media => "all" %>

将产生:

<link href="/stylesheets/killer.css" media="all" rel="stylesheet" type="text/css" />

相反,如果要在样式表目录中包含所有样式表,只需调用:

< %= stylesheet_link_tag :all %>

来自rails wiki:

  

请注意,stylesheet_link_tag默认会搜索   应用程序的/ public / stylesheets目录中的样式表。   此外,当没有其他参数传递给stylesheet_link_tag时,   type属性设置为text / css,media设置为screen,和   关系设置为样式表。此外,你没有必要   传递文件名时,在文件名中包含.css扩展名   参数。欢迎您加入它,但只要您的CSS   样式表以.css扩展名命名,没有必要这样做   所以。请注意,如果您包含文件扩展名,则Rails将不再存在   查找此调用的.css扩展名文件。例如,   如果你想要包含一个名为my_style.new.css的样式表,那么   以下是不够的: