在 Rails 中使用 HAML 而不是 ERB 时 CSS 未加载 (404)

Posted

技术标签:

【中文标题】在 Rails 中使用 HAML 而不是 ERB 时 CSS 未加载 (404)【英文标题】:CSS not loading (404) when using HAML instead of ERB in Rails 【发布时间】:2013-06-20 08:40:22 【问题描述】:

此 ERB 有效(查找 CSS):

<%= stylesheet_link_tag "main" %>

但是我正在将我的 ERB 转换为 HAML,现在我的样式表找不到了。我可以轻松地向config/routes.rb 添加一些内容,但我想我不需要?

这是我的 HAML:

%link:rel => "stylesheet", :type => "text/css", :href => "main"

在 ERB 中没有像 stylesheet_link_tag 这样的东西吗? HAML 目前看起来比 ERB 更糟糕。使用 HAML 渲染的 CSS 如下所示:

<link href="main" rel="stylesheet" type="text/css">

这样你就可以看到为什么它找不到文件了。

我的 CSS 文件是这样的:app/assets/stylesheets/main.css

我应该使用stylesheet_link_tag 之类的东西还是我必须改变我的路线之类的?

非常感谢。

【问题讨论】:

【参考方案1】:

stylesheet_link_tag 只是一个简单的助手

为了在haml中使用它,只需做这样的事情

= stylesheet_link_tag "main"

【讨论】:

【参考方案2】:

你必须改变它:

%link:rel => "stylesheet", :type => "text/css", :href => "main"

到:

%linkrel => "stylesheet", :type => "text/css", :href => "main"

您不必将: 添加到rel =&gt;

【讨论】:

为什么投反对票?如果这不能解决问题,无论如何都要更改它,因为 : 是错误的。

以上是关于在 Rails 中使用 HAML 而不是 ERB 时 CSS 未加载 (404)的主要内容,如果未能解决你的问题,请参考以下文章

从 ruby​​ on rails 中删除 new.haml/new.erb?

使用 HAML 的 Rails HTTP 流式传输

Rails:部分远程形式:工作一次,而不是两次

Rails 路径助手在 js.coffee.erb 中不起作用

如何在 Rails 中动态更改格式渲染引擎?

Rails Ajax:.js.erb 呈现为文本,而不是 JS