Phoenix 1.7 welcome page assets not showing properly

Background

I have a a fresh umbrella project with a Phoenix app inside. To create the app I used the following commands:

  1. mix new test_app --umbrella
  2. cd test_app/apps
  3. mix phx.new.web web_interface --no-dashboard --no-ecto --no-gettext --no-mailer
  4. cd web_interface
  5. Add {Phoenix.PubSub, name: WebInterface.PubSub} to lib/application.ex
  6. Inside web_interface folder mix setup
  7. mix assets.deploy
  8. iex -S mix phx.server

After this last command I am then greeted with:

λ iex -S mix phx.server
03:18:31.953 [info] Running WebInterface.Endpoint with cowboy 2.10.0 at 127.0.0.1:4000 (http)
03:18:32.039 [info] Access WebInterface.Endpoint at http://localhost:4000
[watch] build finished, watching for changes…
Interactive Elixir (1.14.1) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> Browserslist: caniuse-lite is outdated. Please run:
npx update-browserslist-db@latest
Why you should do it regularly: GitHub - browserslist/update-db: CLI tool to update caniuse-lite to refresh target browsers from Browserslist config
iex(1)>
iex(1)> Rebuilding…
iex(1)>
iex(1)> Done in 476ms.
iex(1)>

Which outside of the warning for an outdated package, raises nothing to indicate that a step is missing/failed.

However, when I login into localhost:4000, I see this:

2c65a4fc3bcac39d737843a2ad3a334e0301c4d2

Which clearly means something is wrong.

Why is this happening, and how can I fix it?

1 Like

Turns out this is a bug with the mix task, it simply generates the wrong code for umbrella phoenix apps:

With the help of the wonderful people at Elixir’s Discord chat, we raised this ticket.
Hopefully, it will eventually be fixed.

In the meantime, if you are creating a Phoenix umbrella app, you can try the theoretical workaround provided in the ticket created. However, since I am not sure this is the way the Phoenix team is going to go with fixing this, I would personally still wait for their fix, or at least for confirmation they are going to implement it this way.

2 Likes