Currently here is the way I’m attempting to add the static path to some
uploads path in MyApp.Endpoint:
# Uploads path plug Plug.Static, at: "/", from: Application.fetch_env!(:waffle, :storage_dir_prefix), gzip: false, only: [Application.fetch_env!(:waffle, :storage_dir)]
Then in both
config/releases.exs I have:
# See `Waffle.Storage.Local` config :waffle, storage: Waffle.Storage.Local, storage_dir_prefix: System.get_env("LOCAL_STORAGE_PATH"), storage_dir: "media"
When assembling the release on my development machine, the application endpoint is compiled to serve uploads files on that machine so I can test it before sending the release to the target (production machine).
The issue is that when starting the app on target machine, the endpoint tries to serve uploads files from dev machine path, even if the release config set new path for the purpose. When uploading files on the target, I can see that Waffle use the release config to store the files to the right place, but it is the endpoint that is not using that config.
I tried to call inside the endpoint a function defined in
MyApp.Application that return uploads path (to ensure runtime config is prioritized over compile time config), but it can not help either.
Thank you for any guidance on this.