Нечувствительный к регистру router.base с nuxt.js и IIS - PullRequest
0 голосов
/ 09 октября 2018

Если я сгенерирую сайт с nuxt, указав router.base в nuxt.config.js, а затем разместлю его на IIS-сервере, все будет работать так, как ожидается, если запрошенный путь URL начинается именно с указанного router.base.

Скажем, например router.base = "/ Foo /" и страница называется "Bar", тогда http://example.com/Foo/Bar загружается просто отлично.То же самое относится и к http://example.com/Foo/bar,, поэтому кажется, что имена страниц не чувствительны к регистру.

Однако, если я использую другой регистр для части router.base URL, то страница загружается, нопохоже, что методы жизненного цикла страницы (такие как data(), created(), head() и т. д.) не запускаются, хотя метод макета mounted() загружается.Это произошло бы, если бы я использовал URL-адрес, такой как http://example.com/foo/Bar в предыдущем примере.

Так что мой вопрос ... есть ли способ запустить методы жизненного цикла страницы, когда дело касается URL-адресапуть отличается от значения router.base?

1 Ответ

0 голосов
/ 12 октября 2018

Это на самом деле не решает проблему, но кажется, что можно перенаправить страницу в начале процесса загрузки на страницу с путем, который начинается точно с router.base.Итак, в /layouts/default.vue у меня теперь есть:

export default {
  mounted () {
    let escapeRegExp = function(string) {
      return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
    }
    if (this.$route.fullPath.indexOf(this.$router.options.base) == -1 &&
        this.$route.fullPath.toLocaleLowerCase().indexOf(this.$router.options.base.toLowerCase()) == 0) {
      let base = this.$router.options.base
      let regex = new RegExp("(//[^/]+)"+escapeRegExp(base),"i")
      let newLoc = document.location.href.replace(regex,"$1"+base)
      if (newLoc != document.location.href) {
        document.location.replace(newLoc)
      }
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...