2016-05-25 7 views
0

Ich habe eine Rails-App erstellt und auf Heroku bereitgestellt und ich habe Hintergrundbildpfade wie vorgeschlagen geändert, damit sie funktionieren.Rails öffentlichen Asset-Dateien Fehler bei der Produktion

In meiner App kann ein Benutzer seine/ihre Auto Bilder hochladen und ich mache sie Schieberegler in der car#show Aktion.

Also, wenn ich meine App zu Heroku schieben und ein paar Bilder zu Heroku hochladen, die Schienen sie auf public/uploads/picture/image speichern, funktioniert es gut. Ich kann Bilder Slider etc ..

Aber auf meinem lokalen Code, da ich keine Bilder hochladen, gibt es kein Bild in public/uploads/picture/image. Wenn ich ändere, sagen wir, dass einige js Code css Code lokal dann;

1.bundle exec rake assets:precompile RAILS_ENV=production 
2.git add -A 
3.git commit -m "message" 
4.git push heroku master 

Bang! Ich kann die Bilder nicht laden, die vor dem Push hochgeladen wurden. Es gibt keinen gefundenen Fehler (404) Also was soll ich tun ?.

+0

ich denke, Sie commit öffentlichen Ordner, so jedes Mal, wenn Sie neue Änderungen festschreiben aktualisieren Sie öffentliche Ordner zu Server und alles im öffentlichen Ordner gelöscht wird. –

+0

Ja, ich kenne das Problem, weiß nur nicht, was ich tun soll –

+0

Sie nur öffentlichen Ordner zu 'Gitignore' hinzufügen, lösen Sie Ihr Problem. –

Antwort

0

Ich habe ähnliches Problem auf Digital Ocean gefunden.

Also was ich getan habe, vor dem Drücken meines neuen Codes. Ich verwendete FireFTP und speicherte den erforderlichen Ordner in Public auf meinem lokalen Computer.

Und nach dem Drücken von neuen Code, wieder zugreifen Server mit FireFTP und hinzugefügt/überschreiben meine erforderlichen Ordner, UPLOADER-Ordner in Ihrem Fall.

Hoffentlich könnte es eine bessere Lösung geben. aber es funktionierte für mich

+0

Vielleicht sollte ich den Pfad ändern, wo Bilder hochgeladen werden. (Ich benutze Trägerwelle). Wenn ich FireFTP jedes Mal blähen .. zu viel Arbeit. Was, wenn ich Amazon S3 verwende, löst es das Problem? –

+0

ja, Amazon S3 ist eine gute Lösung. –

+0

nicht sicher über S3, hoffentlich wird es funktionieren. Aber S3 ist eine Option, es hängt von der Größe Ihrer App ab, dass Heroku enogh oder Sie für S3 bezahlen müssen. Bleibt Ihr DB gleich? Ich muss sogar meine DB ersetzen –