MIME-тип ('text / html') не является ошибкой в ​​Chrome - PullRequest
0 голосов
/ 18 октября 2018

Я пытаюсь добавить свой файл webpack build.js на свою html-страницу и получаю следующие ошибки в Chrome:

GET http://localhost:3000/public/build.js net::ERR_ABORTED 404 (Not Found)
Refused to execute script from 'http://localhost:3000/public/build.js' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled.

app.js:

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

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

app.listen(3000, function() {
    console.log('poopy');
});

app.post('/', function(req, res) {
    res.end('success');
});

index.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Coffee Newsletter</title>
</head>
<body>
    <form action="/" method="post">
        <input type="email" name="email">
        <input type="submit" name="submit">
    </form>
    <script type="text/javascript" src="./public/build.js"></script>
</body>
</html>

конфигурация веб-пакета:

const path = require('path')

module.exports = {
    entry: './scripts.js',
    output: {
        path: __dirname + '/public',
        filename: 'build.js'
    },
    watch: true

}

Я пытался использовать historyApiFallback: trueи это ничего не исправило.Я много читал о том, что люди, исправляющие проблему в теге HTML-скрипта, ошибались, поэтому, возможно, что-то я не вижу.Надеюсь, кто-нибудь может мне помочь!Заранее спасибо.

Просто чтобы уточнить, где мои файлы Основная папка: C: \ Users \ jake \ Documents \ project \ CoffeeClub \ newsletter

  • Public
  • app.js
  • scripts.js
  • webpack.config.js

Внутри Public У меня естьэти файлы:

  • build.js
  • index.html

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

Обнаружив, что проблема в том, что мой сервер тянет HTML, я удалил дополнительный каталог public и поместил все это в корень, и теперь он работает отлично.

0 голосов
/ 18 октября 2018

Вы сказали:

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

Поэтому, когда браузер запрашивает /public/build.js, сервер выдает его ./public/public/build.js.Так как этого не существует, вместо этого он получает 404.

Одна публикация из URL, другая из статического базового каталога.

Если вы хотите включить /public вURL, то вы должны ограничить маршрут промежуточного программного обеспечения.

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