module.exports = {
entry: "./src/index.js",
output: {
path: __dirname + '/dist',
// publicPath: __dirname + '/dist/',
filename: "bundle.js"
},
devServer: {
contentBase: "/dist",
hot: true,
}
}
我的理解是
contentBase
指示webpack dev server文件从哪里提供服务。因此,如果我访问localhost:8080/test.txt
,在此配置下,服务器会将myProjectRoot/dist/test/txt
中的文件发送到浏览器。这正确吗?那output.publicPath
与此有什么关系呢?现在,我的
index.html
和bundle.js
都位于myProjectRoot/dist/
中。(虽然我认为bundle.js
有点令人困惑,因为它实际上是由webpack-dev-server返回的内存捆绑包,但还是)根据我之前的段落,我期望服务器将index.html
返回给浏览器。由于contentBase
是/dist
且index.html
在磁盘上的路径是./dist/index.html
。但是相反,我看到:
Cannot GET /
所以,再次,如果我去访问http://localhost:8080/bundle.js
,我可以看到完整的JavaScript捆绑包(与我在文本编辑器中最后保存的内容相同)。但是,/index.html
却是Cannot GET /
?我错过了什么吗?