首页 > 解决方案 > Express.js 中的静态路由返回 404 错误

问题描述

我正在尝试使用 express.js 为我网站的不同页面创建路由。转到 127.0.0.1:8080 时,它可以正常加载 index.html 页面,但是,当我转到 127.0.0.1:8080/questionaire 时,它​​返回 404 错误并且不加载 questionaire.html。我认为使用这条线:

app.use(express.static('client', { extensions: ['html'] }));

意味着这是可能的,但是,它不起作用。如果有更好的方法来解决这个问题,请告诉我。

目录

client
-- index.html
-- index.js
-- questionaire.html
-- questionaire.js
svr.js
viewapi.js

svr.js

'use strict';

const express = require('express');
const app = express();

const view_api = require('./viewapi');

app.use(express.static('client', { extensions: ['html'] }));

const api = require('./api');

app.use('/view', view_api); // routing to api which will get data in form of JSON

app.listen(8080);

标签: javascriptnode.jsexpress

解决方案


我刚刚尝试了您的设置并加载 questionare.html 对我来说效果很好。当您尝试加载页面时,您是否从 Express 服务器收到任何其他错误?我问是因为我不确定里面的内容是什么,viewapi.js所以当我测试它时,我没有那个文件。

但是,要回答这个问题:

如果有更好的方法来解决这个问题,请告诉我。

分离您提供的资产(html、css、js、图像等)是一种很好的做法。例如,您可以在文件夹中创建子文件client夹并将静态文件放在适当的文件夹中。

您还可以在此处找到示例和更好的文档:https ://expressjs.com/en/starter/static-files.html


推荐阅读