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 的安装上。
- 访问 https://nodejs.org/en/download/
- 下载并安装当前版本
- 安装完成后重启电脑
- Re 运行 服务器,问题应该消失了,应用程序应该 运行 没有任何修改。 即在指定时从应用程序更改为默认 CSS 个文件。
访问 https://www.youtube.com/watch?v=l04kFL3pnEk 获取分步视频教程。
我在网上搜索了这个问题的解决方案,但没有找到有效的解决方案,尽管我确实发现了类似的问题。
所以,我是 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 的安装上。
- 访问 https://nodejs.org/en/download/
- 下载并安装当前版本
- 安装完成后重启电脑
- Re 运行 服务器,问题应该消失了,应用程序应该 运行 没有任何修改。 即在指定时从应用程序更改为默认 CSS 个文件。
访问 https://www.youtube.com/watch?v=l04kFL3pnEk 获取分步视频教程。