Ruby on Rails:如何使用rails项目添加css文件?

时间:2011-10-07 15:43:58

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1

application.html.erb文件:

<!DOCTYPE html>
<html>
<head>
  <title>Site</title>
  <%= stylesheet_link_tag    :all %>
  <%= javascript_include_tag "application" %>
  <%= csrf_meta_tags %>
</head>
<body>

<%= yield %>

</body>
</html>

我在public /文件夹中有一个文件“cake.generic.css”。

但是当我重新加载页面时,css文件的效果不起作用。

如果我看到页面查看源,我会看到类似这样的内容:

<!DOCTYPE html>
<html>
<head>
  <title>Site</title>
  <link href="/assets/all.css" media="screen" rel="stylesheet" type="text/css" />
  <script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
<script src="/assets/home.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>

  <meta content="authenticity_token" name="csrf-param" />
<meta content="6CPvchXr1amagxd7VmOzB82WGx/WmjfDOXjMLfjLzqQ=" name="csrf-token" />
</head>
<body>

<h1>Home#index</h1>
<p>Find me in app/views/home/index.html.erb</p>


</body>
</html>

我该怎么做才能解决这个问题?

如何设置样式表和javascripts的公用文件夹?

看起来app / assets文件夹是为css和js文件设置的?

4 个答案:

答案 0 :(得分:5)

Rails可能会将所有css文件整合到一个名为assets / all.css

的文件中

考虑使用免费插件firebug + firepath来进一步表征问题。这种常用的工具组合将帮助您查询网页元素并查看有助于其显示的CSS。

答案 1 :(得分:4)

cake.generic.css复制到文件夹public/assets/,如果不存在则复制目录。

然后将此添加到您erb <%= stylesheet_link_tag "cake.generic" %>

第二个问题:如何设置样式表和javascripts的公用文件夹?

将所有图片,js和css文件放在“public / assets /”下,然后将它们包含在erb

第3个问题:看起来app / assets文件夹是为css和js文件设置的吗?

是的,'app / assets / stylesheets /'用于css和scss文件 和js和coffeescript文件的'app / assets / javascripts'

您可以在此处获取更多信息:http://guides.rubyonrails.org/asset_pipeline.html#how-to-use-the-asset-pipeline

希望这对你有用:)

答案 2 :(得分:3)

您的样式表应放在根项目的以下目录\public\stylesheets中,如果您想指定不同的位置,请在stylesheet_link_tag("/public/yourfolder/test.css")

内提供绝对路径

答案 3 :(得分:0)

我有类似的问题,但我的解决方法是确保css在app / assets / stylesheets /下面,我必须将以下行添加到application.css文件中(我的css文件名为custom.css)< / p>

@import'custom'