Fl4m3Ph03n1x

Fl4m3Ph03n1x

Add folder to mix assets.deploy

Background

I have a project that has a folder for image it uses. I call this folder images.

Issue

Usually when I do mix assets.deploy from the root of my project everything is compiled and phoenix puts the images it needs inside priv/static/.

However, these images are not being used in templates nor in renders. They are being used by elixir-desktop. So because of this when I use mix assets.deploy these images are not bundled together with everything else.

Question

I have read the introduction to deployment guide: Introduction to Deployment — Phoenix v1.8.3

But it does not address my issue. Is there a configuration I can change to add my images folders? I believe this would have to go into mix.exs or something amongst those lines.

Marked As Solved

LostKobrakai

LostKobrakai

It used to, but hasn’t been since 1.6 – based on the generated setup of a fresh phoenix install.

Also Liked

derpycoder

derpycoder

As @LostKobrakai pointed out, mix assets.deploy just processes js/css from assets folder.

Rest of the images, svgs, icons, robots.txt, canary.txt, ads.txt, favicon, etc, you need to place them directly priv/static folder.

I guess, it just minifies, compresses and generates file hash on js/css files.

However the images are compressed by us, so they are directly placed in priv/static folder and the mix assets.deploy works on those images in place:


Excerpt from Introduction to Deployment:

This step is required only if you have compilable assets like JavaScript and stylesheets. By default, Phoenix uses esbuild but everything is encapsulated in a single mix assets.deploy task defined in your mix.exs.

And that is it! The Mix task by default builds the assets and then generates digests with a cache manifest file so Phoenix can quickly serve assets in production.


P.S. I fumbled in the beginning as well, but I just saw existing projects by other people and figured out that you just leave images and such in priv/static folder.

derpycoder

derpycoder

Yup, it’s a good practice.

Let me find an official documentation.


As @LostKobrakai mentioned, it’s a new way of doing it after webpack was removed!


Note running mix phx.digestwill create digested files for all of the assets in priv/static , so your images and fonts are still cache-busted.

https://hexdocs.pm/phoenix/1.6.1/asset_management.html#images-fonts-and-external-files

Where Next?

Popular in Questions Top

pmjoe
I have a relationship of love and hate with Elixir. Lots of things are just absolutely right, but there are some things that are kind of ...
New
JorisKok
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New
itssasanka
Hi all, Trying to get some more clarity over utc_datetime and naive_datetime for Ecto: https://hexdocs.pm/ecto/Ecto.Schema.html#module-...
New
aalberti333
As the title describes, I’m trying to run Enum.map() over a list of key/value pairs, where the value is a map. My data looks like this: ...
New
Kagamiiiii
Student & New to elixir. Nice language. I want to convert a english character, e.g. “a”, which is stored in a variable, to it’s asci...
New
vertexbuffer
Hello, can anybody help here..? I have a list of players and I what to delete an element, but every for loop the list is reverting to ori...
New
mgjohns61585
Could someone help me? I'm making my first elixir program, number guessing game. I can't figure out how to convert the user's guess from ...
New
fireproofsocks
Forgive me if this is obvious, but how does one delete a database record WITHOUT selecting it first? https://hexdocs.pm/ecto/Ecto.Repo.h...
New
9mm
I am constructing a JSON object (map) and I need to conditionally set a field. I’m trying to write proper elixir-way code… and I’m at a l...
New
skosch
To my knowledge, put_in, Map.update etc. all have the one limitation of not automatically creating intermediate keys when needed (for exa...
New

Other popular topics Top

lessless
I believe there are people here who are dealing with CSV files import on the daily basis, and since Excel is a really popular tool there ...
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
joaquinalcerro
Hi there, I am working with Ecto-Postgresql and I need to call all of the records from a specific table but the table has 40,000 record...
New
Jim
As a follow up to my earlier question: I have the code compiling and running but not getting a successful login from the rest server. ...
New
chrismccord
This release brings a number of exciting features, including integration with the new Phoenix LiveDashboard and Phoenix LiveView. There h...
New
minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
chrisalley
ExUnit now has describe blocks which is a welcome addition coming from RSpec. In the docs, it states that nested hierarchies of describe ...
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New
belgoros
I’m not a pro in using Regex and can’t figure out why the following behaviour happens, especially if we take into account the difference ...
New
vrod
I am using the Starship cross-shell prompt – it seems pretty nice, but I get some errors: [WARN] - (starship::utils): Executing command ...
New

We're in Beta

About us Mission Statement