蓝图css中的资产预编译错误 – ActionView :: Template :: Error(blueprint / screen.css未预编译) – 内部服务器错误500

我正在尝试部署rails应用程序,但我遇到了资产预编译错误。 根据生产日志,错误是由名为screen.css的“Blueprint”css脚本引起的(如下面的错误输出中所示)。 但是根据生产日志,这个资产实际上确实得到了预编译。 我试过在application.rb和config / environments / production.rb文件中明确地将screen.css和print.css添加到预编译数组中,如下所示

config.assets.precompile = %w(screen.css print.css) 

但无济于事。 我也试过在本地预编译我的资产并将整个事情推送到服务器。 我已经尝试了这里概述的所有建议: blueprint / screen.css没有预编译 ,这里: blueprint css rails 3.1 help和同样的问题在这里仍未解决: Ruby on Rails 3.2编译资产不能正常工作

我不知道接下来要尝试什么来解决这个错误。 任何帮助将非常感谢! 下面的日志输出以及我的部署文件,cap文件和application.rb文件。 提前感谢您提出的任何建议!

以下是部署后日志文件的一些输出,您可以看到screen.css已预编译。 错误输出如下:

 Compiled application.js (5ms) (pid 16431) Compiled jquery.js (2ms) (pid 16431) Compiled jquery_ujs.js (0ms) (pid 16431) Compiled microposts.js (94ms) (pid 16431) Compiled pages.js (1ms) (pid 16431) Compiled sessions.js (0ms) (pid 16431) Compiled users.js (0ms) (pid 16431) Compiled application.css (17ms) (pid 16431) Compiled blueprint/ie.css (0ms) (pid 16431) Compiled blueprint/plugins/buttons/screen.css (0ms) (pid 16431) Compiled blueprint/plugins/fancy-type/screen.css (0ms) (pid 16431) Compiled blueprint/plugins/link-icons/screen.css (0ms) (pid 16431) Compiled blueprint/plugins/rtl/screen.css (0ms) (pid 16431) Compiled blueprint/print.css (0ms) (pid 16431) Compiled blueprint/screen.css (0ms) (pid 16431) Compiled blueprint/src/forms.css (0ms) (pid 16431) Compiled blueprint/src/grid.css (0ms) (pid 16431) Compiled blueprint/src/ie.css (0ms) (pid 16431) Compiled blueprint/src/print.css (0ms) (pid 16431) Compiled blueprint/src/reset.css (0ms) (pid 16431) Compiled blueprint/src/typography.css (0ms) (pid 16431) Compiled custom.css (0ms) (pid 16431) Compiled microposts.css (13ms) (pid 16431) Compiled pages.css (1ms) (pid 16431) Compiled scaffolds.css (15ms) (pid 16431) Compiled sessions.css (1ms) (pid 16431) Compiled users.css (1ms) (pid 16431) Started GET "/" for 12.13.14.15 at 2012-04-05 14:15:50 -0700 Processing by PagesController#home as HTML Rendered pages/home.html.erb within layouts/application (1.1ms) Rendered layouts/_stylesheets.html.erb (1.3ms) Completed 500 Internal Server Error in 6ms ActionView::Template::Error (blueprint/screen.css isn't precompiled): 1:  4:  'screen' %> 5:  'print' %> 6:  7:  'screen' %> app/views/layouts/_stylesheets.html.erb:4:in `_app_views_layouts__stylesheets_html_erb___2010157553399413981_33056460' app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb__4294160261947576619_31749320' 

这是部署文件:

 $:.unshift(File.expand_path('./lib', ENV['rvm_path'])) # Add RVM's lib directory to the load path. require "rvm/capistrano" # Load RVM's capistrano plugin. require "bundler/capistrano" set :application, "Project" set :scm, "git" set :repository, "ssh://server.example.ca/usr/local/git_root/project.git" set :user, "deploy" #set :rvm_bin_path, "/usr/local/rvm/bin" set :rvm_ruby_string, "ruby-1.9.2-p290@project" set :normalize_asset_timestamps, false ssh_options[:forward_agent] = true set :branch, "master" set :deploy_via, :remote_cache # If you aren't deploying to /u/apps/#{application} on the target # servers (which is the default), you can specify the actual location # via the :deploy_to variable: set :deploy_to, "/usr/local/www/sites/project.example.ca/" set :use_sudo, false set :domain, 'project.example.ca' role :app, domain role :web, domain role :db, domain, :primary => true before "deploy:symlink", "assets:precompile" namespace :assets do desc "Compile assets" task :precompile, :roles => :app do run "cd #{release_path} && bundle exec rake RAILS_ENV=#{rails_env} assets:precompile" end end 

这是我的capfile:

 load 'deploy' if respond_to?(:namespace) # cap2 differentiator Dir['vendor/plugins/*/recipes/*.rb'].each { |plugin| load(plugin) } load 'config/deploy' load 'deploy/assets' 

这是application.rb配置文件:

 require File.expand_path('../boot', __FILE__) require 'rails/all' if defined?(Bundler) # If you precompile assets before deploying to production, use this line Bundler.require(*Rails.groups(:assets => %w(development test))) # If you want your assets lazily compiled in production, use this line # Bundler.require(:default, :assets, Rails.env) end module Arbiterapi class Application < Rails::Application # Configure the default encoding used in templates for Ruby 1.9. config.encoding = "utf-8" # Configure sensitive parameters which will be filtered from the log file. config.filter_parameters += [:password] # Enable the asset pipeline config.assets.enabled = true # Version of your assets, change this if you want to expire all your assets config.assets.version = '1.0' # Precompile problem assets config.assets.precompile = %w(screen.css print.css) end end 

我遇到了同样的问题。 但事实certificate我丢失的资产被编译成application.js(因为它合并了所有文件),所以我只需要删除对特定文件的引用(在我的例子中是webcam.js)。

您的文件合并到application.css等…