express.static()不会路由静态文件

时间:2019-03-21 17:03:28

标签: javascript node.js express

在进行快速项目时,我尝试使用from StringIO import StringIO # would be from io import BytesIO in Python3 image_stream = StringIO(two) document.add_picture(image_stream) 函数。

我在主文件中添加了一条静态路由:

app.js

express.static()

lottery.js(router.js)

const express = require('express');
const bodyParser = require('body-parser');
const path = require('path');
const ApiResponse = require('./utils/response');
const userRoutes = require('./routes/lottery');

const app = express();

app.use(bodyParser.json({ extended: false }));

app.use(userRoutes);
app.use(express.static(path.join(__dirname, './', 'views', 'src', 'index.js')));
app.use(express.static(path.join(__dirname, './', 'views', 'src', 'style.css')));


app.use((err, req, res, next) => {
  ApiResponse.error(res, err);
});

app.listen(8080);

当我加载localhost:8080页面时-我的index.js和style.css文件未连接并显示以下错误:

获取http://localhost:8080/src/index.js净值:: ERR_ABORTED 404(未找到)

这是我的项目文件夹中的一棵树:

const express = require('express');
const path = require('path');
const LotteryController = require('../controllers/LotteryController');

const router = express.Router();

router.get('/', (req, res, next) => {
  res.sendFile(path.join(__dirname, '../', 'views', 'index.html'));
});

router.post('/simulate', LotteryController.simulate);

router.all('*', (req, res, next) => {
  const err = new Error('message: Endpoint not found');
  err.status = 404;
  next(err);
});

module.exports = router;

2 个答案:

答案 0 :(得分:1)

我只提供公用文件夹。

app.use(express.static(path.join(__dirname, 'public')));

然后您可以做:

http://localhost:8080/views/src/index.js

答案 1 :(得分:1)

我已经解决了问题。

问题出在错误的顺序上,在路由函数之后,express.static()已被调用。

这是正确的版本:

app.use(express.static(path.join(__dirname, 'views', 'src')));
app.use(userRoutes);