Rails de, ne sert pas actifs dans la production ou la mise en scène des environnements
Dans le processus de débogage de ce problème, j'ai essayé de lancer mon application en mode de production localement et il n'est pas de servir de tous les biens. En outre, j'ai un mise en scène de l'environnement dans un Heroku application (séparé de ma production Heroku application), qui est également maintenant l'affichage du HTML sans moyens.
Debug, j':
- Tuer le serveur
- Effacer tmp/cache/actifs
- Supprimer publique/actifs
- Exécuter
rake assets:precompile
- Démarrer le serveur
rails s -e production
- Visiter la page et d'ouvrir l'inspecteur web et en cliquant sur l'expansion de la flèche pour l'application.lien css il dit
Reload the page to get source for: http://localhost:3000/assets/application-e1f3e0c864a153c7iu66f8772a886376.css
- Le rechargement de la page ne fait rien.
De Production.rb:
config.cache_classes = true
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
config.serve_static_assets = true
config.static_cache_control = "public, max-age=3600"
config.assets.compress = false
config.assets.compile = false
config.assets.digest = true
Mise en scène.rb:
config.cache_classes = true
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
config.serve_static_assets = true
config.static_cache_control = "public, max-age=3600"
config.assets.compress = false
config.assets.compile = false
config.assets.digest = true
Application.rb:
config.assets.enabled = true
config.assets.version = '1.0'
config.assets.initialize_on_precompile = false
Ci-dessous comment j'ai le lien de la feuille de style et javascript dans mise en page/de l'application.html.erb:
<%= stylesheet_link_tag "application", :media => "screen, handheld" %>
<%= javascript_include_tag "application" %>
Pourriez-vous montrer comment vous accédez à l'actif? Comme
J'ai mis à jour la question.
Ce middleware Rack utilisez-vous? Commutation à mince m'a obligé à définir
= stylesheet_link_tag "application", :media => "all"
J'ai mis à jour la question.
Ce middleware Rack utilisez-vous? Commutation à mince m'a obligé à définir
config.assets.compile = true
plutôt que la valeur par défaut de false
- mais pas si j'ai utilisé des Passagers.OriginalL'auteur railsuser400 | 2013-03-04
Vous devez vous connecter pour publier un commentaire.
Donc, le problème est que la mémoire a été mis à
config.cache_store = :dalli_store
qui a été à l'origine des erreurs et la valeurconfig.cache_store = :memory_store
résolu.Les pignons ne va utiliser le cache par défaut magasin lors de la mise en cache des actifs en développement/production. La valeur par défaut de stockage des fichiers.
OriginalL'auteur railsuser400
C'est une sorte de deviner, mais ne compile pas les actifs doivent être mis à true?
et je pense que vous avez besoin de compiler les actifs comme ceci:
config.assets.compile = true
toutes les demandes d'actifs dans le pipeline sont gérés par des Pignons directement. En outre, la spécification de l'environnement ne fait pas de différence.Avez-vous essayé de précompiler les actifs comme je l'ai suggéré? Ou en fonction de cette question stackoverflow.com/questions/7340635/..., vous pouvez essayer le réglage de
config.serve_static_assets = false
.Oui. J'ai aussi changé
config.serve_static_assets = false
et l'url du digest de l'actif de l'inspecteur web correspondent à ceux des fichiers en public/actif, mais il est encore en disantget http:localhost:3000/assets/application-e1f3e0c864a153c75866f8772a056376.css 404 (not found)
. J'ai aussi redémarré le serveur et dur-actualisé le navigateur.Je crois que les actifs compilé dans le dossier /public de votre projet. Les fichiers existent réellement dans ce dossier?
Doit avoir
config.serve_static_assets = true
sauf si vous avez un serveur distinct servant de ces actifs.OriginalL'auteur Catfish