【发布时间】:2021-07-20 16:59:46
【问题描述】:
使用“npm run dev”启动我的下一个应用程序时,在预渲染尝试期间出现此错误:
GEThttp://localhost:3000/aave/fundamentals/economics/[object Object] [HTTP/1.1 404 Not Found 434ms]
问题是这不依赖于这个特定的路径。如果我删除它,我仍然在另一个路径上......这是我的页面文件夹:pages folder
我不明白为什么 Next.js 一开始不能正确地影响我的页面。我认为这给我构建项目带来了问题。这在本地运行良好,即使我有这个错误,但每次我尝试构建时,我都有这个错误:错误导出在以下路径上遇到错误:ALL_PATHS
这仍然是一个虚拟项目,我没有获取任何数据,所以我也没有使用 getStaticProps() 函数或 getStaticPath()。如果我错了,请纠正我,但我认为我还不需要它,因为我没有与任何 API 交互。如果你认为我需要,我不知道我应该把这些函数放在哪个页面,因为没有“主”文件。
页面之间的所有链接都在这里处理(但我认为问题不存在):
const router = useRouter();
const token = !router.query.protocoleId ? "aave" : router.query.protocoleId.toString();
const [analyticsUnfold, setAnalyticsUnfold] = useState(false);
const [overviewUnfold, setOverviewUnfold] = useState(false);
const [feUnfold, setFeUnfold] = useState(false);
const [marketUnfold, setMarketUnfold] = useState(false);
const [newsUnfold, setNewsUnfold] = useState(false);
const [sentimentUnfold, setSentimentUnfold] = useState(false);
const [feEconomicsUnfold, setFeEconomicsUnfold] = useState(false);
const analyticsUnfoldHandler = () => analyticsUnfold === false ? setAnalyticsUnfold(true) : setAnalyticsUnfold(false);
const overviewUnfoldHandler = () => overviewUnfold === false ? setOverviewUnfold(true) : setOverviewUnfold(false);
const feUnfoldHandler = () => feUnfold === false ? setFeUnfold(true) : setFeUnfold(false);
const marketUnfoldHandler = () => marketUnfold === false ? setMarketUnfold(true) : setMarketUnfold(false);
const newsUnfoldHandler = () => newsUnfold === false ? setNewsUnfold(true) : setNewsUnfold(false);
const sentimentUnfoldHandler = () => sentimentUnfold === false ? setSentimentUnfold(true) : setSentimentUnfold(false);
const feEconomicsUnfoldHandler = () => feEconomicsUnfold === false ? setFeEconomicsUnfold(true) : setFeEconomicsUnfold(false);
function redirect(path) {
// console.log(path);
// console.log(`/${token}/overview/${path}`);
router.push(`/${token}/overview/snapshot`);
}
return(
<ul className={styles.ul}>
<ListItems onClick={analyticsUnfoldHandler} isUnfolding={true}>Analytics</ListItems>
{analyticsUnfold && <ListItems onClick={overviewUnfoldHandler} isUnfolding={true} isSubItem={true} >Overview</ListItems>}
{overviewUnfold && <Link href={`/${token}/overview/snapshot`} passHref ><div><ListItems isSubItem={true} >Snapshot</ListItems></div></Link>}
{overviewUnfold && <Link href={`/${token}/overview/description`} passHref><div><ListItems isSubItem={true} >Description</ListItems></div></Link>}
{overviewUnfold && <Link href={`/${token}/overview/estimates`} passHref><div><ListItems isSubItem={true} >Estimates</ListItems></div></Link>}
{overviewUnfold && <Link href={`/${token}/overview/yield`} passHref><div><ListItems isSubItem={true} >Yield</ListItems></div></Link>}
{analyticsUnfold && <ListItems onClick={feUnfoldHandler} isUnfolding={true} isSubItem={true} >Fundamentals Economics</ListItems>}
{feUnfold && <ListItems onClick={feEconomicsUnfoldHandler} isUnfolding={true} isSubItem={true} >Economics</ListItems>}
{feEconomicsUnfold && <Link href={`/${token}/fundamentals/economics/marketdesign`} passHref><div><ListItems isSubItem={true} >Market Design</ListItems></div></Link>}
{feEconomicsUnfold && <Link href={`/${token}/fundamentals/economics/mechanismdesign`} passHref><div><ListItems isSubItem={true} >Mechanism Design</ListItems></div></Link>}
{feEconomicsUnfold && <Link href={`/${token}/fundamentals/economics/tokendesign`} passHref><div><ListItems isSubItem={true} >Token Design</ListItems></div></Link>}
{feUnfold && <Link href={`/${token}/fundamentals/fundamental`} passHref ><div><ListItems isSubItem={true} >Fundamental</ListItems></div></Link>}
{feUnfold && <Link href={`/${token}/fundamentals/transactionnal`} passHref><div><ListItems isSubItem={true} >Transactionnal</ListItems></div></Link>}
{analyticsUnfold && <ListItems onClick={marketUnfoldHandler} isUnfolding={true} isSubItem={true} >Markets</ListItems>}
{marketUnfold && <Link href={`/${token}/markets/price`} passHref><div><ListItems isSubItem={true} >Price</ListItems></div></Link>}
{marketUnfold && <Link href={`/${token}/markets/financialproducts`} passHref><div><ListItems isSubItem={true} >Financial Products</ListItems></div></Link>}
{marketUnfold && <Link href={`/${token}/markets/fundflow`} passHref><div><ListItems isSubItem={true} >Fund Flow</ListItems></div></Link>}
{analyticsUnfold && <ListItems onClick={newsUnfoldHandler} isUnfolding={true} isSubItem={true} >Latest News</ListItems>}
{newsUnfold && <Link href={`/${token}/latestnews/newsevents`} passHref><div><ListItems isSubItem={true} >News and Events</ListItems></div></Link>}
{analyticsUnfold && <ListItems onClick={sentimentUnfoldHandler} isUnfolding={true} isSubItem={true} >Sentiment</ListItems>}
{sentimentUnfold && <Link href={`/${token}/sentiment/marketsentiment`} passHref><div><ListItems isSubItem={true} >Market Sentiment</ListItems></div></Link>}
{sentimentUnfold && <Link href={`/${token}/sentiment/webscraping`} passHref><div><ListItems isSubItem={true} >Web Scraping</ListItems></div></Link>}
{sentimentUnfold && <Link href={`/${token}/sentiment/webtracking`} passHref><div><ListItems isSubItem={true} >Web Tracking</ListItems></div></Link>}
</ul>
);
}
【问题讨论】:
-
您是否在代码中处理任何重定向?
-
嗨,约翰,是的,我确实是这样处理它们的(有关更多详细信息,请参阅上面编辑过的问题):{overviewUnfold && /${token}/overview/snapshot} passHref >
Snapshot } 但我试图删除它们,用一个 onClick 道具上的 router.push 来处理它。它不会改变任何东西。这就是为什么我得出结论认为问题来自“页面”文件夹。即使Menu组件中没有组件,错误仍然存在(因为我猜是“pages”文件夹中的文件)... -
我不完全确定,但我相信如果路由器推送“url”+someObject 会发生这种路径:localhost:3000/aave/fundamentals/economics/[objectObject]。您知道代码中处理重定向的其他任何地方吗?如果它发生在预渲染中,那么您的代码中有一个 useEffect 或挂起 router.push() 。您的浏览器是否也重定向到提到的网址?
-
你能提供一个minimal reproducible example吗?
-
我只在另外两个地方处理重定向,但这些是 onClick 道具上的基本重定向。我删除了它们,错误仍然存在。我几乎可以肯定它来自 Next.js 中的代码。有时,错误消息是: GEThttp://localhost:3000/[object Object] [HTTP/1.1 404 Not Found 13ms] 而且没有自定义 url,有时有......我必须在我的代码中做错事触发 NExtjs 函数。当我运行 npm build 我有这个错误:错误:导出在以下路径上遇到错误:ALL_PATHS 我将做一个最小的可复制示例。
标签: javascript reactjs url next.js