首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >404页在导出后不显示在nextjs中。

404页在导出后不显示在nextjs中。
EN

Stack Overflow用户
提问于 2021-02-18 18:48:52
回答 1查看 2.5K关注 0票数 2

我在/pages目录中添加了一个自定义的404.js文件,它在本地运行良好,但是当我运行下一个导出并将所有文件从out目录放到cpanel中的public_html目录时,一切都正常,但是当我输入错误的路径时,它应该转到404页,而我的web会带我到主页,在地址栏中有相同的链接。例如:当我尝试访问/about页面时,我没有/about页面,我的网站应该向我展示404页面,而不是显示带有/about的主页(index.html)。

next.config.js文件

代码语言:javascript
运行
复制
module.exports = {
  exportPathMap: async function (
    defaultPathMap,
    { dev, dir, outDir, distDir, buildId }
  ) {
    return {
      "/": { page: "/" },
      "/faq": { page: "/faq" },
      "/how-it-works": { page: "/how-it-works" },
      "/patient-onboarding": { page: "/patient-onboarding" },
      "/privacy-policy": { page: "/privacy-policy" },
      "/terms-of-use": { page: "/terms-of-use" },
      "/searched-pharmacy": { page: "/searched-pharmacy" },
      "/new-customer": { page: "/new-customer" },
      "/404": { page: "/404" }
    }
  },
  trailingSlash: true,
}

使用"next":"^10.0.6",

server.js文件

代码语言:javascript
运行
复制
const express = require("express");
const next = require("next");
const dev = process.env.NODE_ENV !== "production";

const sitemapOptions = {
  root: __dirname + "/public/",
  headers: {
    "Content-Type": "text/xml;charset=UTF-8",
  },
};

// Create the Express-Next App
const app = next({ dev });
const handle = app.getRequestHandler();
//Start the app
app
  .prepare()
  //Start Express server and serve the
  .then(() => {
    const server = express();
    // serve sitemap
    server.get("/sitemap.xml", (req, res) =>
      res.status(200).sendFile("sitemap.xml", sitemapOptions)
    );

    server.get("*", (req, res) => {
      return handle(req, res);
    });
    server.listen(3000, (err) => {
      if (err) throw err;
      console.log("> Ready on http://localhost:3000");
    });
  })
  .catch((ex) => {
    console.error(ex.stack);
    process.exit(1);
  });

在本地显示404页

部署后的相同路径

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-22 07:18:46

终于来了!我找到了解决问题的办法。多亏了本文件

在我的NextJS配置中没有问题,问题是我的.htaccess文件。我已经更改了.htaccess文件,404页现在正在使用HTTP状态代码404

我刚刚完成了这两个简单的步骤!

  1. 在root_level添加了404.html文件
  2. 在.htaccess文件ErrorDocument 404 /404.html中添加了这一行

注意:-- .htaccess和404.html文件都位于root_level

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66266279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档