Как сделать ссылку на статические ресурсы, если я изменю router.base в nuxtjs? - PullRequest
0 голосов
/ 12 октября 2019

По умолчанию я могу использовать статические ресурсы, подобные этим, на страницах Nuxtjs:

<img src="/img/logo.jpg"/>
...
<style>
.my-class {
  background-image: url("/img/background.jpg");
}
</style>

, которые /img/logo.jpg и /img/background.jpg находятся в каталоге <project>/static/, а страницу http://localhost:3000/some-page можно отобразитьправильно.

Но, если я установлю router.base для подпути, подобного этому:

export default {
  router: {
    base: '/demo',
  }
}

URL страницы будет изменен на http://localhost:3000/demo/some-page, но URL изображения не будетизменено: http://localhost:3000/img/logo.jpg.

Должен ли я жестко кодировать подпуть перед каждой ссылкой на ресурс? почему nuxtjs не будет изменять статические ресурсы автоматически?

1 Ответ

0 голосов
/ 14 октября 2019

Я думаю, что знаю ответ, невозможно автоматически добавить префикс перед img.src или css.url, потому что эти теги могут быть динамически установлены с помощью привязки данных, и Nuxt или Vue-router не могли изменить эти путиво время выполнения.

Если я использую тег <nuxt-link> или <router-link> для установки ссылки, путь будет автоматически добавлен параметром base, но если я использую <a>, это не так, этоправильно.

Итак, я думаю, что лучший ответ - установить глобальную переменную, которая представляет значение base, и использовать ее следующим образом:

<img :src="`${BASE}/img/logo.jpg`">
...