嗨,
我在这里遵循了本指南:https : //auth0.com/blog/next-js-authentication-tutorial/(将带有护照的身份验证添加到 next.js)
我有一个简单的问题。
在我点击 next.js 的“/login”链接时,我可以看到这个错误大约 200 毫秒:
请求 URL:http://localhost:3000/_next/static/development/pages/login.js 请求方法:GET 状态码:404 Not Found
然后它会自动重定向到主页的根目录,因为它随后被成功验证(使用护照 Facebook)。
我仍然在问为什么我会在短时间内看到此错误?
这是客户端链接:
{!user && (
<Link href="/login">
<a>Log In</a>
</Link>
)}
这是服务器路由:
router.get("/login", passport.authenticate("facebook"));
router.get("/callback", (req, res, next) => {
passport.authenticate("facebook", (err, user) => {
if (err) return next(err);
if (!user) return res.redirect("/login");
req.logIn(user, err => {
if (err) return next(err);
res.redirect("/");
});
})(req, res, next);
});
是什么触发了这个错误?
我猜:
因为我使用 next.js 中的 "Link" 组件,该应用程序尝试查找名称为 "Login.js" 的页面。由于它不存在,因为它只是一个服务器 API,它显示了该错误。如果我是对的,如何摆脱它?伙计们!
到目前为止我尝试了什么:
我刚刚在他们的文档中找到了这个:https : //github.com/zeit/next.js/#disabling-file-system-routing
但这会破坏应用程序,因为它无法再解析任何页面。所以我猜不是这样:D