application.css资产管道



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

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

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

我所有的样式表、js和图像都在公共文件夹中,这是目前的一个陷阱。文件夹结构:

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

当前public/assets/application.css文件为空。如何在开发环境中编译此文件?

当我在rails控制台中运行Rails.application.config.assets.paths时,我得到的是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:我使用了单引号而不是双引号,这就修复了语法错误。我想我现在已经找到了路了。谢谢

只需保留应用程序.css的原始设置,让资产管道完成任务:

*= require_self
*= require_tree .

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

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

我不同意谭的回答。在开发过程中,您不应该将文件放在默认位置以外的任何位置。你可以很容易地把你的东西搞砸,除非你需要像资产管理这样的requireJS,否则你可以从资产管道中受益匪浅。

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

将CSS文件移动到

app/assets/

只是从那里要求他们。

最新更新