我已经在rails 3.1上开发了html5-rails和compass-html5但是当我在生产模式下运行我的应用并尝试访问我的主页时,我得到以下内容:
Sprockets::Helpers::RailsHelper::AssetPaths::AssetNotPrecompiledError in Home#index
polyfills.js isn't precompiled
问题是localhost:8080:/assets/polyfills.js确实显示。我怀疑我的方法存在问题:
重现的步骤:
1 使用家庭控制器创建新的rails应用,索引操作并设置根路由并删除 public / index.html 和 views / layouts / application .html.erb
2 在Gemfile中添加以下内容
gem 'rails', '~> 3.1.0'
gem 'unicorn'
group :assets do
gem 'compass', "~> 0.12.alpha.0"
gem 'sass-rails', "~> 3.1.0"
gem 'coffee-rails', "~> 3.1.0"
gem 'uglifier'
gem 'compass-html5', :git => 'https://github.com/sporkd/compass-html5.git'
gem 'html5-rails', :git => "https://github.com/sporkd/html5-rails.git"
end
3 运行rails g html5:install
以创建 /config/compass.rb 文件
4 创建包含以下代码的 /config/initializers/sass.rb :
Rails.configuration.sass.tap do |config|
config.load_paths << "#{Gem.loaded_specs['compass'].full_gem_path}/frameworks/compass/stylesheets"
end
5 运行RAILS_ENV=production bundle exec rake assets:precompile
6 运行unicorn -E production
(或rails s -e production
如果你在webrick上)并访问root url
7 观察错误
/ public / assets 中存在正确缩小的 respond-md5.min.js 和 modernizr-md5.min.js 。当我访问 localhost:8080 / assets / modernizr.min.js 时,编译的js代码会出现。当我尝试访问我的主页时,抛出了服务器错误。
我怀疑我的方法有错误。我在github上问了同样的问题here。
答案 0 :(得分:6)
我设法通过将polyfills.js添加到application.rb
来解决这个问题config.assets.precompile += %w( polyfills.js )
答案 1 :(得分:0)
我遇到了同样的错误,问题是我的文件丢失了......