Как прочитать локальный текстовый файл в методе компонента в vue 3?

Я пытаюсь, написать метод, который будет считывать svg из файла:

data(){
return {
  svg: "",
}
},
methods: {
getSvg(filename){
const fs = require('fs')
if (fs.existsSync(__dirname+filename)){
          this.svg = fs.readFileSync(__dirname+filename).toString()
      }
else{
   this.svg = fs.readFileSync(__dirname+"notfound.svg").toString()
}}}

<template>
<div v-html="svg"></div>
</template>

Но fs работает только на сервере, поэтому код не работает. Подскажите, пожалуйста, как это сделать на vue.js? И в какой папке размещать svg-файлы, чтобы они были доступны для чтения?


Ответы (1 шт):

Автор решения: Alex _

Можно разместить svg файлы в public директории, а затем с помощью axios их получать:

axios.get('http://localhost:8080/my.svg')
        .then(response => {
          this.svg = response.data
        })
        .catch(() => {
          axios.get('http://localhost:8080/notfound.svg')
              .then(response => {
                this.svg = response.data
              })
        })
→ Ссылка