如何在应用程序布局中正确编写样式表的路径?

时间:2015-08-19 13:03:15

标签: ruby-on-rails ruby-on-rails-4

我想将 bootstrap.min.css 文件包含在项目中,该文件位于(项目)/css/bootstrap.min.css 文件夹中。 我在<head>标记之间的应用程序布局中添加了以下行。

<head>
  <title>Greenbull</title>
  <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
  <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
  <%= csrf_meta_tags %>
  <link rel="stylesheet" href="path/css/bootstrap.min.css">
</head>

然而,当我运行我的应用程序时,控制台会出现错误 enter image description here

enter image description here

为什么会这样?

enter image description here

2 个答案:

答案 0 :(得分:1)

将您的.css放在assets / stylesheets文件夹中,然后在application.css中输入

*= require your_css_file

答案 1 :(得分:1)

如上所述,将资产包含到rails应用程序中的首选方法是使用Asset Pipeline。如果您需要包含Rails设置的默认包含路径之外的资产(在您的情况下为css / bootstrap.min.css),则可以向应用程序添加自定义路径。

将以下内容添加到config / initializers / assets.rb:

config.assets.paths << Rails.root.join("css")

当您在layout / application.html.erb中使用javascript_include_tag或stylesheet_link_tag时,Rails现在会在/ css中查找资源。您还需要告诉rails要预编译的资产名称,因为您使用的文件名不是application.js或application.css。为此,请将以下内容添加到config / initializers / assets.rb文件中:

Rails.application.config.assets.precompile += %w( bootstrap.min.css )

在layout / application.html.erb中,您现在可以告诉rails加载样式表。

<%= stylesheet_link_tag 'bootstrap.min', media: 'all' %>