我正在使用nodejs和webpack4,我试图将main.js文件链接到index.html。我尝试了网络上所有可能的解决方案,似乎没有一个对我有效。我是一个新手,欢迎提出建议,请让我知道我做错了什么。
以下是我看到的错误日志:
GET http://localhost:3000/dist/main.js net::ERR_ABORTED
localhost/:1
Refused to execute script from 'http://localhost:3000/dist/main.js'
because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled.
public/index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
</head>
<body>
<form action="/" method="POST" accept-charset="utf-8">
<input type="email" name="email" placeholder="Email">
<input type="submit" name="submit">
</form>
<script type="text/javascript" src="dist/main.js"> </script>
</body>
</html>
/app.js
const express = require('express');
const app = express();
const http = require('http');
//Middleware
app.use(express.static(__dirname + '/public' ));
app.post('/', function( req ,res){
res.send("Success");
});
app.listen(3000, function(){
console.log('Server running on port 3000');
});
文件结构
news_letter //Root directory
|_ dist
| |_ main.js
|_ public
| |_ index.html
|_ src
| |_ index.js
|_ app.js
3条答案
按热度按时间pw136qt21#
你需要
main.js
文件在公用文件夹中.它看起来像你把
main.js
文件在dist/
文件夹和index.html
文件在public/
文件夹。但是您只将
app.js
文件中的一个目录设置为“静态文件目录”html中的每个路径都是相对于公用文件夹中的路径的。因此,将您的
dist/
文件夹移动到public/
文件夹中,一切都应该正常文件结构
oknrviil2#
在我的例子中,我还必须将中间件行更改为:
而不是:
基于documentation的原因是:
但是,为express.static函数提供的路径是相对于启动节点进程的目录的。如果您从另一个目录运行express应用程序,则使用您要提供服务的目录的绝对路径更安全:
af7jpaap3#
以下为我工作。
添加下面的标题作为中间件固定在我的情况下