EJS页面跳转异常:点击购物车导航提示Cannot GET /cart
EJS页面跳转异常:点击购物车导航提示Cannot GET /cart
看起来你遇到的是Express路由配置缺失的问题,我来帮你一步步解决:
核心原因
你点击导航栏的Cart链接后出现Cannot GET /cart错误,本质是你的Express后端没有为/cart这个路径配置对应的请求处理路由。浏览器向服务器发送GET /cart请求时,服务器找不到对应的处理逻辑,所以返回了这个错误。
具体解决步骤
添加Cart页面的GET路由
在你的Express主文件(比如app.js或server.js)中,在现有配置代码之后,添加处理/cart路径的路由:// 处理GET /cart请求,渲染cart.ejs页面 app.get('/cart', (req, res) => { // 如果需要给页面传递购物车数据,可以在这里处理 // 比如从session中获取购物车商品:const cartItems = req.session.cart || []; // 然后渲染时传递数据:res.render('cart', { cartItems }); // 暂时不需要数据的话,直接渲染页面即可 res.render('cart'); });确认模板文件路径正确
确保你的cart.ejs文件确实存放在views/pages目录下——这和你配置的app.set('views', path.join(__dirname, 'views/pages'))路径完全匹配,否则Express会找不到模板文件。
优化小建议
把导航链接的href改成绝对路径更稳妥:
<li><a href="/cart">Cart</a></li>
用/cart(绝对路径)代替cart(相对路径),可以避免当前页面在子路径(比如/products/123)时,点击链接跳转到错误的/products/cart路径的问题。
备注:内容来源于stack exchange,提问作者Michael Lugalia
相关产品推荐
相关产品推荐

