2017-07-28 2 views
3

Ich weiß, dass diese Frage sehr gefragt ist, aber ich verliere meine Meinung hier. Ich begann eine App mit Rails 5 zu erstellen. Ich stellte sie in AWS EB ein und setzte das env auf die Entwicklung. Aber meine Assets laden nicht. Getting a 404. Ich implementierte Ritzel und in meiner application.rb-Datei sowie rake assets:precompile ausgeführt. Ich habe auch versucht, die alle config.asset Konfigurationen in development.rb:Rails 5 Assets zurück 404 in Entwicklung

config.assets_compile 
config.public_file_server.enabled 
config.assets.digest 
config.assets.enabled 

Mein nginx Fehlerprotokoll ist voll von der folgenden für jedes meiner Vermögen. Der Pfad ist falsch. Ich habe mein Vermögen nicht in /var/app/current/public gelegt, ich steckte sie in /var/app/current/app/assets. Irgendwann hatte ich es von dort zu holen (weiß nicht mehr, wie), aber es immer noch nicht funktioniert:

2017/07/28 01:16:15 [error] 2994#0: *1387 open() "/var/app/current/public/assets/merck-logo.png" failed (2: No such file or directory), client: 76.218.103.88, server: _, request: "GET /assets/merck-logo.png HTTP/1.1", host: "merckcoupons-dev1.dv3ww3wmii.us-west-1.elasticbeanstalk.com", referrer: "http://merckcoupons-dev1.dv3ww3wmii.us-west-1.elasticbeanstalk.com/circular" 

Das Verrückte ist, dass ich tat dies nur mit einer anderen App nicht allzu lange her und habe Es ist offen für eine Führung. Ich habe stundenlang gegoogelt und kann es nicht herausfinden. Jede Hilfe wäre willkommen!

+1

Sie haben die folgenden https://hackernoon.com/how-to-setup-and-deploy-a-rails-5-app-on-aws-beanstalk-with-postgresql-redis-and- gelesen mehr-88a38355f1ea Sie können sich auch die offizielle AWS-Dokumentation ansehen: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_Ruby_rails.html –

+0

@StephanePaquet. Danke, ich habe – BooBailey

+3

normalerweise würden Sie bereitstellen mit 'Produktion' oder' Staging' env, nicht 'Entwicklung'. Sie müssen die Assets vorkompilieren (dadurch werden Fingerabdruckkopien der Dateien im öffentlichen Verzeichnis erstellt), 'RAILS_ENV = production bin/rails Assets: precompile ' Bitte lesen Sie die Anleitungen zu den Schienen: http://guides.rubyonrails.org/asset_pipeline .html – house9

Antwort

3

Wenn Sie Bilder referenzieren, die den image_tag Helfer verwenden, enthalten Sie nur den Dateinamen und keinen Pfad. Rails wird die Datei in app/assets/images in Entwicklungsumgebung verwenden und dann public/assets/IMAGE_NAME_FINGER_PRINT.ext in anderen Umgebungen verwendet werden (nach Vorkompilierung)

See: http://guides.rubyonrails.org/asset_pipeline.html#coding-links-to-assets

Zum Beispiel:

GUT: <%= image_tag 'rails.png' %>

BAD: <%= image_tag '/assets/rails.png' %>

Verwandte Themen