我的项目与***run dev***命令一起工作得很好,但是当我尝试***npm start***时,除了Index.js之外,其他页面(*pages/... *)出现404 page not found错误。
我尝试了几种方法,我发现从形式(gthub问题,和博客),但没有工作。
有什么想法吗?实际上为什么运行开发和启动之间应该有区别?我认为我们应该在开发过程中看到我们的应用程序出了什么问题
package.json中的脚本
"scripts": {
"dev": "next",
"start": "next start",
"build": "next build"
},
和下一个. config. js
const withCSS = require("@zeit/next-css");
module.exports = withCSS({
cssModules: true,
cssLoaderOptions: {
importLoaders: 1,
localIdentName: "[local]___[hash:base64:5]"
}});
正如你所看到的,我没有改变安装nextJS后的任何东西。
第一节第一节第一节第一节第一次
4条答案
按热度按时间2g32fytz1#
我发现如果文件名在Windows上有大写字母,你会得到一个404错误。
我将所有文件名改为小写字符,404错误消失了。
bfhwhh0e2#
首先,你需要了解你想构建什么样的应用程序。它是无服务器的?还是有服务器的?你想使用什么样的Web服务器(有这么多选择)。
对于无服务器应用程序:
所有你需要做的生产构建是
next export
,这个函数将生成静态文件作为您的网站。Read more here ...对于具有服务器的应用程序:
如果要运行
npm run start
,则需要首先执行npm run build
。npm run build
编译并优化您的生成以用于生产模式。npm run start
运行您的web服务器来为您的html文件提供服务。如果你已经完成了这两个步骤,这意味着你的服务器文件有问题,你的Web服务器的API没有监听请求,因此它没有重定向到正确的页面。
cdmah0mi3#
在启动应用程序之前,您需要使用npm run build命令进行构建,然后启动应用程序。
vuv7lop34#
对于遇到这个问题的人,请确保
next.config.js
中的basePath是正确的,如果您像我一样弄乱了基本路径,您的路由将中断,并且您将在每个页面上看到404。