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

shi*_*bly 0 ruby ruby-on-rails 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>
Run Code Online (Sandbox Code Playgroud)

我在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>
Run Code Online (Sandbox Code Playgroud)

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

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

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

Per*_*ich 5

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

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


Cam*_*ong 5

复制cake.generic.css到该文件夹public/assets/​​,如果不存在先创建目录。

然后添加这个给你erb <%= stylesheet_link_tag "cake.generic" %>

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

只需将所有图像、js 和 css 文件放在“public/assets/”下,然后将它们包含在页面erb

第三个问题:app/assets 文件夹似乎是为 css 和 js 文件设置的?

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

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

希望这对你有用:)