我在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: 我使用单引号而不是双引号来修复语法错误。我想我现在已经找到了路径。谢谢!
答案 0 :(得分:8)
保留application.css的原始设置,让资产管道完成工作:
*= require_self
*= require_tree .
在您的布局中,您应该能够加载已编译的application.css文件:
<%= stylesheet_link_tag "application", :media => "all" %>
我不同意谭的回答。您不必将文件放在开发中的默认位置以外的任何位置。您可以轻松搞砸您的东西,除非您需要类似于需要类似资产的资产管理,否则您可以从资产管道中获益良多。
以下是您需要了解的有关资产管道的所有信息: http://guides.rubyonrails.org/asset_pipeline.html
答案 1 :(得分:0)
将CSS文件移至
app/assets/
并且从那里只需要它们。