我正在用这样的结构构建反应种子项目:
project
│ package.json
│ webpack.config.js
│ .babelrc
│
└───bin
│ app.bundle.js
│
└───node_modules
|
└───public
│ index.html
└───src
app.jsx
为了启动项目我有设置命令npm run dev运行:
webpack -d --watch && ./node_modules/.bin/http-server -a localhost -p 8000 -c-1
它在localhost:8000上启动服务器,webpack正在监视更改。
http-server
在我的index.html所在的./public文件夹中有一个入口点。
这似乎是一种运行服务器的安全方式,因为它只能访问公用文件夹,但是当我尝试包含我编译的app.bundle.js
文件时,我遇到了问题。
./公共/ index.html中
<html>
<head>
<meta charset="utf-8">
<title>Seed project</title>
</head>
<body>
<div id="app" />
<script src="../bin/app.bundle.js" type="text/javascript"></script>
</body>
</html>
当我运行服务器时,我收到了找不到app.bundle.js文件的错误,因为服务器无法看到任何位于公共文件夹入口点的内容。
将index.html移动到根文件夹不是一个好习惯,因为这样就可以访问所有其他不安全的文件。
如何解决这个问题?
提前致谢。
PS。 Webpack从src文件夹编译文件并在./bin文件夹中创建单个文件。
答案 0 :(得分:0)
我相信这是因为nodejs定义文件夹静态以便访问其文件,如js css图像等
app.use(express.static('public'));
对您的bin文件执行相同操作,您也将访问它
app.use(express.static('bin'));