5 votes

AssetNotPrecompiledError lors de l'utilisation de la gemme html5-rails dans l'environnement de production

J'ai html5-rails y compas-html5 Je travaille en développement sur rails 3.1 mais lorsque je lance mon application en mode production et que j'essaie de visiter ma page d'accueil, j'obtiens ce qui suit :

Sprockets::Helpers::RailsHelper::AssetPaths::AssetNotPrecompiledError in Home#index

polyfills.js isn't precompiled

Le problème est que localhost:8080:/assets/polyfills.js s'affiche. Je soupçonne qu'il y a un problème avec mes méthodes :

Étapes à reproduire :

1 Créer une nouvelle application rails avec un contrôleur home, une action index et mettre en place une route Root et supprimer. public/index.html y vues/layouts/application.html.erb

2 Ajouter ce qui suit au 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 Exécuter rails g html5:install pour créer /config/compass.rb fichier

4 Créer /config/initializers/sass.rb contenant le code suivant :

Rails.configuration.sass.tap do |config|
  config.load_paths << "#{Gem.loaded_specs['compass'].full_gem_path}/frameworks/compass/stylesheets"
end

5 Exécuter RAILS_ENV=production bundle exec rake assets:precompile

6 Exécuter unicorn -E production (o rails s -e production si vous êtes sur webrick) et visitez Root url

7 Observer l'insecte

Le fichier correctement minifié respond-md5.min.js y modernizr-md5.min.js sont présents dans /public/actifs . Le code js compilé apparaît bien lorsque je visite le site localhost:8080/assets/modernizr.min.js . L'erreur de serveur se produit lorsque j'essaie de visiter ma page d'accueil.

Je soupçonne qu'il y a une erreur dans ma méthode. J'ai posé la même question aquí sur github.

6voto

marflar Points 13293

J'ai réussi à corriger cela en ajoutant polyfills.js à application.rb

config.assets.precompile += %w( polyfills.js )

0voto

metakungfu Points 820

Je viens d'avoir la même erreur, et le problème était que mon fichier était manquant...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X