Экспресс, Как загрузить в JS файлы - PullRequest
0 голосов
/ 29 июня 2018

Когда у меня есть следующий код:

const express = require('express');
const app = express();
const http = require('http').Server(app);
const io = require('socket.io')(http);
const cors = require('cors');

app.use(cors());

app.use(express.static('public'));
app.set('view engine', 'html');

app.get('/', (req, res, next) => {
    res.render('./index');
});

io.on('connection',(socket) => {
    console.log('a user connected');
});

app.listen(3000, () => console.log('Example app listening on port 3000!'));

И следующая структура каталогов:

enter image description here

Когда я делаю запрос к серверу на localhost: 3000, мне возвращается HTML, который я хочу. Однако я не понимаю, что браузер не может загрузить мой файл JS. Вот мой HTHL:

<!DOCTYPE html>
<html lang="en">
<head>
    <script src="/public/script.js"></script>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    test
</body>
</html>

В консоли появляется следующая ошибка:

localhost /: 5 GET http://localhost:3000/public/script.js 404 (не найдено)

localhost /: 1 Отказался от выполнения скрипта из 'http://localhost:3000/public/script.js', поскольку его тип MIME (' text / html ') не является исполняемым и включена строгая проверка типов MIME.

Почему chrome не может загрузить и выполнить мой файл Javascript?

1 Ответ

0 голосов
/ 30 июня 2018

Вам следует изменить маршрут ваших статических файлов. Добавление некоторого маршрута.

app.use('/public', express.static('public'))

вместо

app.use(express.static('public'));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...