Ruby Rails CSS 未通过资产管道加载

Ruby on Rails CSS not loading via assets pipeline

我在网上搜索了这个问题的解决方案,但没有找到有效的解决方案,尽管我确实发现了类似的问题。

所以,我是 RoR 开发的新手,这是我的第一个应用程序。我正在尝试创建一个页面,到目前为止,我已经设法使用带有操作的控制器路由到我的第一页。路由工作正常。

问题出在 CSS,我已将 css 放在单独的 .css 文件中 assets/stylesheets/main.css.

这里是:

h1 {
   font-size: 100px;
}

我 link 使用 Rails 提供的默认方法对所有样式表进行设置,它被放置在我的 application.html.erb 文件中,如下所示:

.
.
.
    <%= csrf_meta_tags %>
    <%= stylesheet_link_tag 'default', media: 'all', 'data-turbolinks-track': 'reload' %>
.
.
.

根据我的研究,我了解到资产管道允许您将所有 CSS 放在 assets/stylesheet 目录中(以及 JS 目录中的 JS 等)。 Rails 应该会自动使用这些 CSS 文件。

但这对我不起作用,因为当我 运行 应用程序时 index.html.erb 文件与没有 main.css 时一样。

如有任何帮助,我们将不胜感激。

如果您需要更多信息,请告诉我。

谢谢。

P.S。在 Windows 10

上使用 Rails 5.0.5 和 ruby 2.2.6p396(2016-11-15 修订版 56800)[i386-mingw32]

P.P.S。我应该注意到 <%= stylesheet_link_tag 'default', media: 'all', 'data-turbolinks-track': 'reload' %> 之前是 <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>。我必须使用默认值,因为使用应用程序会引发异常 (ExecJS::ProgramError)

stylesheet_link_tag(*sources)

Returns a stylesheet link tag for the sources specified as arguments. If you don't specify an extension, .css will be appended automatically. You can modify the link attributes by passing a hash as the last argument.
http://api.rubyonrails.org/classes/ActionView/Helpers/AssetTagHelper.html#method-i-stylesheet_link_tag

至link至app/assets/stylesheets/main.css您需要使用<%= stylesheet_link_tag 'main', media: 'all', 'data-turbolinks-track': 'reload' %>

原来问题出在 Node.js 的安装上。

  1. 访问 https://nodejs.org/en/download/
  2. 下载并安装当前版本
  3. 安装完成后重启电脑
  4. Re 运行 服务器,问题应该消失了,应用程序应该 运行 没有任何修改。 即在指定时从应用程序更改为默认 CSS 个文件。

访问 https://www.youtube.com/watch?v=l04kFL3pnEk 获取分步视频教程。