Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

131
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!