Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

128
Vistas
¿Cómo puedo cargar un SVG directamente en lugar de importarlo a través de un archivo js para usarlo en un folleto divIcon?

Tengo un proyecto de muestra de Vue 2 en https://github.com/ericg-vue-questions/leaflet-test

Necesito usar este SVG dentro de un folleto divIcon .

 const cloudIcon = L.divIcon({ html: thecloud, // this.cloudSvg, // thecloud, className: 'my-custom-icons', iconSize: [size, size], iconAnchor: [size/2, size/2] })

Además, es posible que deba realizar algunas modificaciones en el SVG, por lo que necesito la fuente SVG real.

Lo que funciona es colocar la fuente SVG dentro de un archivo javascript e importarlo haciendo:

 import {thecloud} from './TheCloud';

y veo:

imagen de trabajo

Lo intenté:

 data() { return{ cloudSvg: require('./TheCloud.svg') } },

Pero eso no funcionó y veo:

no funciona

¿Hay alguna forma de hacer esto? Me gustaría evitar el paso adicional de colocar la fuente SVG dentro de los archivos javascript. Parece que esto debería ser innecesario.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Encontré un método que funciona, pero estoy seguro de que hay formas de mejorarlo.

Los siguientes cambios están en la rama raw-loader .

  1. yarn add raw-loader
  2. cree un archivo vue.config.js en la raíz del proyecto con los siguientes contenidos para configurar el raw-loader .
 module.exports = { chainWebpack: config => { config.module .rule('raw-loader') .test(/\.txt$/i) .use('raw-loader') .loader('raw-loader') .end() } }
  1. Cambié mi método data() a:
 data() { return{ center: [37.781814, -122.404740], cloudSvg: require('./TheCloud.svg'), cloudSrc: require('./TheCloud.txt') } },

agregando cloudSrc: require('./TheCloud.txt') .

TheCloud.txt es un duplicado de TheCloud.svg , pero con una extensión diferente para que el raw-loader sin formato lo procese.

  1. Cambie el uso de divIcon a:
 const cloudIcon = L.divIcon({ html: this.cloudSrc.default, // thecloud, // this.cloudSvg, // thecloud, className: 'my-custom-icons', iconSize: [size, size], iconAnchor: [size/2, size/2] })

No puedo decir que entiendo todo lo que sucede aquí, como por qué necesito la parte .default o la sección de configuración del paquete web, pero esto está funcionando.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda