Hi there,
I just managed to deploy my first Phoenix app using edeliver. The only problem left are static files, which Phoenix doesn’t serve right now: When I try to access /css/app.css
, I get Phoenix 404 page.
I’ve added the following to my .deliver/config
file:
pre_erlang_clean_compile() {
status "Running phoenix.digest" # log output prepended with "----->"
__sync_remote " # runs the commands on the build host
[ -f ~/.profile ] && source ~/.profile # load profile (optional)
set -e # fail if any command fails (recommended)
cd '$BUILD_AT' # enter the build directory on the build host (required)
# prepare something
mkdir -p priv/static # required by the phoenix.digest task
# run your custom task
APP='$APP' MIX_ENV='$TARGET_MIX_ENV' $MIX_CMD phoenix.digest $SILENCE
"
}
In my config/prod.exs
file, I’ve got the following configuration:
# (PORT is "80" and URL is the server's IP)
config :app, App.Endpoint,
http: [port: {:system, "PORT"}],
url: [host: {:system, "URL"}, port: 80],
cache_static_manifest: "priv/static/manifest.json"
config :app, App.Endpoint, root: "."
When I run mix phoenix.digest
and MIX_ENV=prod mix release --prod
locally, phoenix serves my static files though.
EDIT: On my build server, /tmp/edeliver/app/builds/priv
only contains a manifest.json
file, which again just consists of an empty object {}
. The static files do exist inside of /tmp/edeliver/app/builds/web/static
.
EDIT 2: I’ve changed the last line of my .deliver/config
file to the following:
APP='$APP' MIX_ENV='$TARGET_MIX_ENV' $MIX_CMD phoenix.digest web/static -o priv/static $SILENCE
The mix phoenix.digest
thing seems to work now, but I have to run brunch before somehow. How can I do that?