Страница работает при начальной загрузке страницы, но если я обновляю страницу, я получаю ошибку 404 с Zeit, Nextjs и сейчас - PullRequest
2 голосов
/ 07 ноября 2019

Я недавно обновился с now v1 до v2.

Все работает локально с now dev и все страницы перезагружаются без проблем. Однако, когда я нажимаю на Prod с now --prod и перехожу на страницу, все работает как положено, однако, если я перезагружаю страницу, я перехожу на страницу с ошибкой 404

Я должен признать, что яя нахожу линии немного размытыми о том, как мне настроить свой проект после перехода к v2. Я так уверен, что это связано с моей маршрутизацией ... но я всегда думал, что он берет маршруты непосредственно из структуры моей папки?

Чтобы добавить к путанице, если вы перезагрузите, вы получите 404, однакосо страницы ошибки 404, если вы используете навигацию, сайт будет отображаться без каких-либо проблем.

Согласно Docs , он должен выбрать имя из файловой системы, что, я считаю,делает, как он перемещается туда изначально.

По умолчанию маршрутизация определяется файловой системой вашего развертывания. Например, если пользователь отправляет запрос в /123.png, а ваш файл now.json не содержит никаких маршрутов с допустимым src, совпадающим с этим путем, он откатится к файловой системе и будет обслуживать /123.png, если он существует.

now.json

{
  "version": 2,
  "builds": [
    { "src": "next.config.js", "use": "@now/next" }
  ],
}

Структура папок

enter image description here

next.config.json

const webpack = require('webpack')
const withCSS = require('@zeit/next-css')

module.exports = withCSS({
  webpack: (config, {}) => {
    const originalEntry = config.entry

    config.entry = async () => {
      const entries = await originalEntry()

      if (entries['main.js'] && !entries['main.js'].includes('./polyfills.js')) {
        entries['main.js'].unshift('./polyfills.js')
      }

      return entries
    }
    return config
  },
  env: {
    env: process.env.NODE_ENV,
  },
})

Но да, я застрял и буду бесконечно благодарен за некоторую помощь:)

Package.json

Я не уверен, полезно ли это знать дляпроблема, но вот мои сценарии.

  "scripts": {
    "build": "next build",
    "dev:inspect": "NODE_ENV=development nodemon --inspect server.js",
    "start": "now dev",
    "test": "echo \"Error: no test specified\" && exit 0",
    "lint-scripts": "eslint './{Frontend/**,test/**,config/**,.}/*.js'",
    "lint-styles": "stylelint './Frontend/**/*.css'",
    "eslint": "eslint . --fix",
    "lint": "npm run lint-scripts && npm run lint-styles",
    "commit": "npx git-cz"
  },

[Редактировать]

  "routes": [
    {"src": "/index", "dest": "/" },
    {"src": "/charts", "dest": "/charts" }
  ]
...