express.static () не маршрутизирует статические файлы - PullRequest
1 голос
/ 21 марта 2019

При работе над экспресс-проектом я пытаюсь использовать функцию express.static().

Я добавил статический маршрут в свой основной файл:

app.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);

lottery.js (router.js)

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;

Когда я загружаю страницу localhost: 8080 - мои файлы index.js и style.css не соединяются и показывают следующую ошибку:

GET http://localhost:8080/src/index.js net :: ERR_ABORTED 404 (не найдено)

Это дерево моей папки проекта:

public
├───views
|   └───src
|   |    ├─── style.css
|   |    └─── index.js
|   |
|   └─ index.html
|
└───app.js

Ответы [ 2 ]

1 голос
/ 22 марта 2019

Я решил проблему.

Проблема была в неправильном порядке, express.static () вызывал после функции маршрутизации.

Вот правильная версия:

app.use(express.static(path.join(__dirname, 'views', 'src')));
app.use(userRoutes);
1 голос
/ 21 марта 2019

Я бы просто обслуживал общую папку.

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

Тогда вы можете просто сделать:

http://localhost:8080/views/src/index.js
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...