ruby-on-rails - application.css Assets 管道

标签 ruby-on-rails asset-pipeline

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

我在我的开发机器上,并且我的 Assets 设置如下: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而不是 Assets 的完整目录路径。

在 View 中,我调用 Assets 管道样式表:<%= stylesheet_link_tag 'application.css' %>
编辑 1:
我尝试将所有样式表移至 app/assets/stylesheets/但它没有在 View 中正确编译 application.css。它编译为:
<link href="/assets/application.css" media="screen" rel="stylesheet" type="text/css" />
当我查看链接时, localhost:3000/assets/application.css 它是一个空白文件。

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

最佳答案

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

*= require_self
*= require_tree .

在您的布局中,您应该能够加载已编译的 application.css 文件:
<%= stylesheet_link_tag "application", :media => "all" %>

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

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

关于ruby-on-rails - application.css Assets 管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13709807/

相关文章:

ruby-on-rails - Heroku CLI 段错误

javascript - Rails Magic 如何将正确的 js 文件连接到正确的 .html.erb

ruby-on-rails-4 - `Errno::EExist` 在开发中运行导轨时 sprockets 出错

ruby-on-rails - Rails 中的音频 Assets 没有路由匹配

ruby-on-rails - 如何最好地在 ruby​​onrails 中创建递归目录列表的 xml 映射?

ruby-on-rails - 为html格式设计http基本认证

ruby-on-rails - 错误 : "Unknown validator: ' PresencesValidator'"when trying to validate a form

ruby-on-rails - 使用 Capistrano Deploy - Rails 复制 Figaro 的 application.yml

javascript - 安全错误 : DOM Exception 18 with Web Workers

ruby-on-rails - Rails 4 Assets 管道未找到预编译 CSS 文件