Ich habe Phoenix App (ich schuf es mit - API-Flag), die einige zusätzliche Daten benötigt, um Anforderungen zu verarbeiten, die ich in priv/data/filters.csv
speichern.Lesen Sie Dateien in Phoenix im Produktionsmodus
So funktioniert es gut in dev
Modus kann ich diese Datei lesen wie: File.stream!("priv/data/filters.csv")
, aber sobald App mit mix edeliver update
geliefert wird, ist diese Datei nicht mehr zugänglich.
Ich kann diesen Ordner im Build-Verzeichnis sehen, aber nachdem App geliefert wird gibt es keinen solchen Ordner priv
. Ich bin nicht sicher, warum es nicht kopiert wird, um Ordner zu liefern.
Was mache ich falsch? Muss ich diese Dateien nach dem Auslieferungsprozess kopieren? Wo kann ich meine Dateien speichern, die ich im Prod-Modus verwenden muss?
mit zu lösen Was ist der Inhalt von 'rel/config.exs'? – mudasobwa
Versuchen Sie 'File.stream! (Pfad.join (: code.priv_dir (: my_app)," data/filters.csv "))' '. – Dogbert
Eine schnelle Möglichkeit, dies zu testen, besteht darin, eine remote_console für Ihre Produktionsinstanz zu öffnen. Sie können dann "pwd" in iex eingeben, um zu sehen, wo der relative Pfad beginnt. Dann versuchen Sie den Aufruf von ': code.priv_dir (: my_app)' und sehr den absoluten Pfad. –