我最近从now v1
升级到v2
。
一切都在now dev
本地运行,并且所有页面都重新加载而没有任何问题。但是,当我用now --prod
推送到产品页面并导航到页面时,一切都会按预期工作,但是,如果我重新加载页面,则会进入错误页面,错误为404
我必须承认,自移至v2
以来,我对应该如何设置项目的思路有些模糊。我确定这与我的路由有关...但是我一直认为它直接从我的文件夹结构中获取路由?
让您感到困惑的是,如果重新加载,您会得到一个404,但是从该404错误页面可以看到,如果使用导航,则该网站将毫无问题地呈现。
According to the Docs,它应该从文件系统中拾取名称,我相信这样做是因为它最初在此处导航。
默认情况下,路由由部署的文件系统定义。 例如,如果用户向/123.png和您的now.json发送请求 文件不包含任何具有与该路径匹配的有效src的路由, 它将回退到文件系统并服务/123.png(如果存在)。
{
"version": 2,
"builds": [
{ "src": "next.config.js", "use": "@now/next" }
],
}
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,
},
})
但是,是的,我被困住了,永远感谢您的帮助:)
我不确定这对了解问题是否有帮助,但这是我的脚本。
"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" }
]