solop

solop

I want to add a Leaflet map, without loading some js and css from external parties.

I followed Asset Management — Phoenix v1.8.8

First I tried the suggested option 3:
{:leaflet, github: "Leaflet/Leaflet", app: false, compile: false}

mix deps.get retrieves it correctly, but importing it in app.js fails (could not be resolved).

After I tried the other option (instaling into assets with npm)
Here I could import the js, but importing the css fails:

import 'leaflet/dist/leaflet.css';

which fails with
✘ [ERROR] No loader is configured for ".png" files: node_modules/leaflet/dist/images/marker-icon.png

as suggested somewhere I modify the following to dev.exs

  watchers: [
    esbuild:
      {Esbuild, :install_and_run,
       [:case_manager, ~w(--sourcemap=inline --watch --loader:.png=file)]},

this compiles, but obviously its looking for the files in the wrong place:

[debug] ** (Ecto.NoResultsError) expected at least one result but got none in query:
from c0 in App.Entries.Entry,
  where: c0.id == ^"marker-icon-2x.png"

omg, its trying to load the assets through ecto!

i am at a loss. How is this being done the correct way?

Showing Posts 1 to 2

voughtdq

voughtdq

I think the browser is just doing what it’s told by leaflet.js, which is requesting marker-icon-2x.png, a relative URL. Requesting marker-icon-2x.png on //myapp:4000/entries would make the browser GET //myapp:4000/entries/marker-icon-2x.png. You need some way to tell leaflet.js to use a different URL.

Based on a cursory glance around leaflet.js and its docs, you would probably want to override Icon.Default and point the URLs to your static path (e.g. /static/images/marker-icon-2x.png or however you have your statics organized).

ndrean

ndrean

Did you try @import "leaflet/dist/leaflet.css"; in “/assets/css/app.css”?

I think you should set --loader:.png=dataurl in the Esbuild config.

— All posts loaded —

Where Next? Top

Trending in Questions Top

RSP87
I’m working on a project that simulates the bumbl example in the programming phoenix book. It acts almost like an email client. We have a...
New
nseaSeb
Hello, I know there is an approach for handling lists that allows for optimized traversal, but I can’t recall the specific method (somet...
New
kpanic
Hi everyone, I am toying with the idea of building a “match maker” for giving personal help to people that wants to start coding. I sta...
New
brecabral
Documentation While reading the Scoped Routes section, I noticed that the documentation currently refers to a problem without explainin...
New
velrest
So my question is quite simple and i have found no conclusive answer on forum, google or AI. Should we use :erlang.float for Integer to ...
New
asweet-confluent
I recently noticed that Elixir’s Logger defaults its primary log level to :debug when no :logger, :level application configuration is pre...
New
apz
I’m new to elixir and just tried to install the elixirLS extension for VScode(ium) and it is throwing some errors that I would like help ...
New

Other Trending Topics Top

GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
New
mhanberg
Hi everyone! The first release candidate for the Expert language server project is now available! We’ve published a press release detai...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews