comment inclure dans le dossier stylesheet racine des rails 3
-
01-10-2019 - |
Question
En raison de certains problèmes de Heroku avec rails 3 et le cadre de la boussole, nous avons suivi ce guide:
http://lds.li/post/673242899 / compas-with-rails-3-on-heroku
et déplacé nos feuilles de style APP_NAME / tmp / feuilles de style.
J'ai essayé d'utiliser
stylesheet_link_tag "#{Rails.root}/tmp/stylesheets/main.css"
mais cela ne fonctionne pas comme il recherche le fichier css dans
http: // localhost: 3000 / app_name / tmp / stylesheets / main.css
Je sais que c'est une solution simple et je donne sur simple quelque chose, mais nous espérons que quelqu'un peut répondre à cela avec un regard. Merci à l'avance!
Je voudrais souligner que nous avons cela dans notre stylesheets.rb
Rails.configuration.middleware.insert_before('Rack::Sendfile', 'Rack::Static',
:urls => ['/stylesheets/compiled'],
:root => "#{Rails.root}/tmp")
J'essaie « montre boussole » il compile encore « tmp / stylesheets / main.css » au lieu de stylesheets / compilé.
La solution
Personnellement, je prends une approche différente pour résoudre ce problème:
Collez le code suivant dans votre boussole initialiseur:
Sass::Plugin.options[:never_update] = true
Cela empêche SASS d'essayer d'écrire sur votre système de fichiers lorsque le serveur est atteint.
Assurez-vous que vous utilisez montre boussole en mode développement et engage les feuilles de style à yout git repo
compiléCela permet d'économiser beaucoup de temps - si vous ne aimez pas cette approche, essayez tracas ou un du fourches récentes
Autres conseils
Modifier votre config/compass.rb
à css_dir = "tmp/stylesheets/compiled"
ensemble
D'après ce que vous avez dans votre configuration, vous devez utiliser cela pour votre modèle:
stylesheet_link_tag "compiled/main.css"
(ce qui rend <link rel="/stylesheets/compiled/main.css" ...
)
(Le tmp
dir est en dehors de public
,. Il ne devrait pas apparaître dans les URL car le middleware prend soin de remapper)