请问一下, webpack-dev-server 的配置 contentBase 是起什么作用的

2019-08-27 16:49:32 +08:00
 clasd2012

使用 webpack-dev-server 的时候,没有配该属性也可以正常工作,打包输出路径是 dist ,版本是: "webpack": "^4.26.1", "webpack-dev-server": "^3.1.10"

文档是说“用于配置提供额外静态文件内容的目录”,那么我配置了 contentBase: path.join(__dirname, "assets"), 应该怎么访问 assets 目录下的文件?

5072 次点击
所在节点    JavaScript
5 条回复
leigou19
2019-08-27 17:06:51 +08:00
用来指定服务器资源的根目录,用来获取静态资源用的。一般指打包完 index.html 那个文件夹。publicPath+具体文件名应该就能访问到 assests 下的资源了
OSF2E
2019-08-27 17:10:53 +08:00
可以直接在 html 文件中引用 assets 目录下的静态文件,注意如果配置了 output.publicPath 的话,要加上这个。

webpack.config.js

config = {

}
clasd2012
2019-08-27 17:23:24 +08:00
@leigou19 没有配置 publicPath,我在项目根目录下建立 assets 目录,里面增加了 index.html 文件,用 localhost:8080/assets/index.html 访问提示 404
leigou19
2019-08-27 17:39:26 +08:00
应该是 localhost:8080/index.html
OSF2E
2019-08-28 00:05:01 +08:00
@clasd2012 output.publicPath 用于设置你的 url 里面是否包含 /assets/,devServer.contentBase 用于告诉 webpack 去哪里找“额外的静态资源”而与 url 中是否包含 /assets/无关

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/595587

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX