Rails4: image_url erzeugt keinen Digest in scss

9

Ich kann nicht verstehen, warum meine CSS-Datei Digests für meine Assets nicht mit der Hilfsmethode image_url

anfügt

Meine Assets sind korrekt vorausgefüllt, und Dateien enthalten den Digest. Ich kann sie auch (mit der verdauten URL) manuell aufrufen. Und das Merkwürdigste ist, dass es am Anfang funktionierte.

Hier ist meine Konfiguration:

%Vor%

hier ist meine Bewerbung.css:  * = require_tree.

Hier ist die Datei common.scss, die für die Aufnahme eines Bildes verwendet wird:

%Vor%

Die Bilder sowie die Stylesheets befinden sich in einem Unterordner innerhalb von Assets / Images und Assets / Stylesheets.

hier meine Edelsteine:

%Vor%

Ich arbeite mit capistrano, aber ich denke nicht, dass dies ein Problem ist, das mit capistrano zusammenhängt. Die Assets sind gut zusammengestellt.

BEARBEITEN Was ich bisher (erfolglos) versucht habe:

%Vor%

Problem bleibt bestehen: Assets werden kompiliert, aber ohne Digest angefordert.

BEARBEITEN

Nach dieser Frage Rails 4 image-path, image-url und asset-url funktionieren nicht mehr in SCSS-Dateien Ich habe meine Assets verschoben und die Kombination von Asset-URL und setzen meine Vermögenswerte in / Öffentlichen Ordner, Hintergrundbilder funktionieren, obwohl das Problem weiterhin besteht, da die Anwendung nicht die Timestamped-Version der Bilder verwendet. Also nur eine (nicht so gute, noch so schlechte) Abhilfe.

    
sissy 08.02.2014, 19:21
quelle

8 Antworten

3

Sollte asset_path verwenden. Außerdem muss es unter dem ERB-Tag ausgeführt werden, da SCSS Asset-Pfad nicht kompiliert. Benennen Sie common.scss in common.scss.erb

um %Vor%

Lesen Sie mehr hier .

    
emaillenin 09.02.2014 10:31
quelle
1

Einige Dinge zu beachten:

  • Stellen Sie sicher, dass das Bild nicht "gitignored" oder etwas
  • ist
  • Stellen Sie sicher, dass sich das gleiche Bild nicht im öffentlichen Ordner befindet
  • Stelle sicher, dass assetbezogene Edelsteine ​​direkt in der Gemdatei liegen und nicht unter group: :production oder etwas. Dies ist die neue Norm für Schienenfahrzeuge
  • Führen Sie rake assets:clobber aus und entfernen Sie den Ordner tmp , der den Sass-Cache enthält
  • Führen Sie RAILS_ENV=production rake assets:precompile manuell in der Produktionsumgebung aus und teilen Sie uns die Liste der unter public
  • generierten Dateien mit
  • Führe rake assets:precompile im Entwicklungsmodus aus, es könnte mehr Protokolle bereitstellen
Subhas 11.11.2014 15:36
quelle
1

ändern Sie Ihre Einstellung von diesem

%Vor%

bis

%Vor%

Grund: Sie erlauben jetzt, dass Ihre Assets in Ihrer App aufgerufen / geschaltet werden. Früher waren Sie es nicht, es wird derzeit direkt von Ihrem Server bedient, d. H.% Co_de% oder apache .

Ich glaube nicht, wie das möglich ist

%Vor%

Es sollte ngnix anstelle von assets enthalten. Wenn dies der Fall ist, gibt es neben der Anlagenpipeline noch etwas anderes.

Seit dem letzten Mal, als meine Frage nicht hilfreich war, dachte ich mir, dass ich dir die funktionierende App zeigen würde. Ich habe die Heroku-App erstellt (der Code hostet auf GitHub). Sie können alle Commits überprüfen. es ist speziell für diese Frage gemacht. Die endgültige Lösung ist das.

Endgültige Fassung: Ссылка

Heroku-URL: Ссылка

Github-Code: Ссылка

Github verpflichtet: Ссылка

Wenn das immer noch nicht funktioniert, sehen Sie sich

an

Ссылка

    
Paritosh Piplewar 15.11.2014 08:25
quelle
0

Versuchen Sie, common.scss in common.css.scss

zu ändern

Lesen Sie mehr: Ссылка

Um der Asset-Pipeline weitere Ordner hinzuzufügen, fügen Sie Folgendes zu config / environments / production.rb

hinzu %Vor%     
jverban 18.02.2014 02:42
quelle
0

Ich benutze dies und seine Arbeit für mich. Verwenden Sie Datei mit diesem Format common.css.scss

%Vor%     
TayyabZahid 18.02.2014 06:39
quelle
0

rails fügt keinen Digest für die Assets an, die nicht wirklich vorhanden sind. Stellen Sie daher sicher, dass die Bilder bereits im image-Verzeichnis vorhanden sind.

    
Usman 18.02.2014 10:25
quelle
0

Ich habe das gleiche Problem hier, ich habe es durch Base 64 behoben, die Bilder mit

zu inlining
  

Asset-Daten-URL ("images / image.jpg")

    
Informatom 05.01.2015 15:52
quelle
0

Verwenden Sie image-url im Fall von .scss, da image_url für .erb-Dateien funktioniert.

    
krsoni 27.11.2015 02:17
quelle