wilt
@wilt
Beginning

Vue + Nuxt is Problem after page refresh. В чем может быть проблема при обновлении страницы?

Привет! Мне действительно нужна помощь более сильных людей во Vue / Nuxt, чем я.
У меня есть сайт на Nuxt. Мы используем Swiper JS для отображения бесконечных статей.
Все работает хорошо НО, после обновления страницы (f5) ломается вся логика. И я не понимаю, в чем может быть проблема. На localHost такой проблемы нет.

Смотрите:
До f5
595a149eb20767282a1f89af627a3a2ad36a2fff
После f5 (url = 11), но это не статья. И все слетело (т.е. все статьи подгрузились)
5bdfea13c5afc0b9fc2a7e9ec26a6735b50d6561
Я наблюдаю только одно очень странное поведение. А именно при обновлении я вижу главную страницу.
f8f5663f37194112b072e96b023c9ac052173b8f

Вы можете увидеть это сами! Просто зайдите на сайт, затем нажмите на любую статью (карточку с надписью), попробуйте просто просмотреть, а затем обновить страницу!
Мне действительно нужна помощь, потому что я в тупике!
Этот сайт делал бывший сотрудник, который явно где-то допустил ошибку, но связи с ним нет.

Все что делается со статьями в store, я предполагаю, что ошибки в async / await

import Vuex from 'vuex'
import * as axios from 'axios'
/* eslint-disable */

const store = () =>
  new Vuex.Store({
    state: {
      articles: [],
      articlesList: { results: [] },
      fullArticleList: [],
      url: '',
      next: '',
      prev: '',
      id: '',
      loadArticle: false
    },
    getters: {
      articles(state) {
        return state.articles
      },
      articlesList(state) {
        return state.articlesList
      },
      getFullArticle(state) {
        return state.fullArticleList
      },
      loadArticle(state) {
        return state.loadArticle
      },
      getNextDisable(state) {
        return state.nextDisable
      },
      getPreviousDisable(state) {
        return state.previousDisable
      }
    },
    mutations: {
      getArticles(state, articles) {
        state.articles = articles
      },
      getArticlesList(state, articlesList) {
        state.articlesList = articlesList
      },
      getFullArticle(state, article) {
        state.fullArticleList.push(article.results[0])
        state.next = article.next
        state.prev = article.previous
        state.id = article.results[0].id
        state.loadArticle = false
      },
      loadArticle(state) {
        state.loadArticle = true
      }
    },
    actions: {
      async getArticles({ commit }) {
        const res = await axios.get(
          `https://vopros.ips-dev.com/api/articles/scroll?cursor=cj0x&page_size=5`
        )
        commit('getArticles', res.data.results)
      },
      async getFullArticle({ commit, state }, initialId) {
        commit('loadArticle')
        const id = Buffer.from(`r=0&p=${initialId - 1}`).toString('base64')
        const res = await axios.get(
          `https://vopros.ips-dev.com/api/articles/scroll?cursor=${id}&page_size=1`
        )
        state.next = res.data.next
        state.prev = res.data.previous
        commit('getFullArticle', res.data)
      },
      async returnArticle({ commit, state }) {
        if (state.next != null) {
          commit('loadArticle')
          const res = await axios.get(state.next)
          commit('getFullArticle', res.data)

          history.pushState(null, null, state.id)
        }
      },
      async addArticle({ commit, state }) {
        if (state.prev != null) {
          commit('loadArticle')
          const res = await axios.get(state.prev)
          commit('getFullArticle', res.data)

          history.pushState(null, null, state.id)
        }
      },
      deleteArticles({ state }) {
        state.fullArticleList = []
      },
      deletePrevArticles({ state }) {
        if (state.fullArticleList.length >= 2) {
          setTimeout(() => {
            state.fullArticleList.splice(1, 1)
          }, 500)
        }
      }
    }
  })
export default store


Надеюсь на Вашу помощь, спасибо!
  • Вопрос задан
  • 849 просмотров
Решения вопроса 1
wilt
@wilt Автор вопроса
Beginning
Кароче, проблема не на клиенте была, а на сервере. Не правильно настроили сервак.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Andrew-Bogdanov
А зачем код стора скидывать? Вы шаблон со свайпером покажите. Какую версию свайпера используете? Под ssr?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы