我从脚手架创建了一个新的 Rails 应用程序,但教程声称将出现以下内容:
<%= stylesheet_link_tag "application", :media => "all" %>
当我得到:
<%= stylesheet_link_tag :all %>
它们之间有什么区别?我应该使用哪个?为什么?
我从脚手架创建了一个新的 Rails 应用程序,但教程声称将出现以下内容:
<%= stylesheet_link_tag "application", :media => "all" %>
当我得到:
<%= stylesheet_link_tag :all %>
它们之间有什么区别?我应该使用哪个?为什么?
使用
<%= stylesheet_link_tag "application", :media => "all" %>
将包含名为application.css的样式表,您可以拥有application.css.sass或application.css.scss之类的文件或任何其他扩展名,rails 将使用正确的样式表引擎编译 css 文件并提供 application.css 文件。
属性“media=all”实际上是一个css属性,这意味着所有的媒体都会包含css,比如浏览网站时,打印屏幕时等。您可以在此处找到有关媒体属性的更多信息关联。
通过使用
<%= stylesheet_link_tag :all %>
您将包含您在app/assets/stylesheets目录中的所有样式表。
您可以在此链接上找到更多信息。
请查看api 文档。在这里你有一些引用:
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" />
第二个不是关于媒体类型的,它的意思是在非资产管道项目中包含样式表目录中的所有 .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" />
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 维基:
请注意,stylesheet_link_tag 默认会在应用程序的 /public/stylesheets 目录中搜索样式表。此外,当没有其他参数传递给 stylesheet_link_tag 时,type 属性设置为 text/css,media 设置为 screen,relationship 设置为 stylesheet。此外,在传递文件名参数时,您不必在文件名中包含 .css 扩展名。欢迎您包含它,但只要您的 CSS 样式表以 .css 扩展名命名,就没有必要这样做。请注意,如果您包含文件扩展名,Rails 将不再为此调用查找扩展名为 .css 的文件。例如,如果您想包含一个名为 my_style.new.css 的样式表,以下内容是不够的: