我从脚手架创建了一个新的Rails应用程序,但是教程声称会出现以下内容:
<%= stylesheet_link_tag "application", :media => "all" %>
我得到了:
<%= stylesheet_link_tag :all %>
他们之间有什么区别?我应该使用哪个?为什么呢?
答案 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的样式表,那么 以下是不够的: