5

我在 Rails 3.2.8 上,我想切换到使用资产管道。

我在我的开发机器上,并且我的资产设置如下 app/assets/stylesheets/application.css

  ...    
  *= require_directory ../public/javascripts/jquery/themes/base
  *= require_directory ../public/prototype/stylesheets/css
*/

我所有的样式表、js 和图像都在 public 文件夹中,现在是一个包罗万象的文件夹。文件夹结构:

app/assets
  /stylesheets
    /application.css
  /javascripts
  /images
  /public
    /stylesheets
    /javascripts
    /prototype
    /images

目前该public/assets/application.css文件为空。如何在开发环境中编译这个文件?

当我Rails.application.config.assets.paths在 rails 控制台中运行时,我得到app/assets/public的不是资产的完整目录路径。

在视图中,我将资产管道样式表称为: <%= stylesheet_link_tag 'application.css' %>

编辑 1:我尝试将所有样式表移动到,app/assets/stylesheets/但它没有在视图中正确编译 application.css。它编译为:

<link href="/assets/application.css" media="screen" rel="stylesheet" type="text/css" />

当我查看链接时, localhost:3000/assets/application.css 它是一个空白文件。

编辑 2:我使用单引号而不是双引号并修复了语法错误。我想我已经掌握了它,因为我已经弄清楚了路径。谢谢!

4

2 回答 2

10

只需保留 application.css 的原始设置,让资产管道完成工作:

*= require_self
*= require_tree .

在您的布局中,您应该能够加载已编译的 application.css 文件:

<%= stylesheet_link_tag "application", :media => "all" %>

我不同意谭的回答。您不必将文件放在开发中的默认位置以外的任何地方。您可以轻松搞砸您的东西,除非您需要类似 requireJS 的资产管理,否则您可以从资产管道中受益匪浅。

以下是您需要了解的有关资产管道的所有信息:http: //guides.rubyonrails.org/asset_pipeline.html

于 2012-12-04T19:53:59.840 回答
0

将您的 CSS 文件移动到

 app/assets/

并从那里要求他们。

于 2012-12-04T18:48:50.933 回答