webpack-dev-server的选项devServer.index的用例是什么

时间:2019-02-24 14:45:45

标签: webpack webpack-dev-server

我只是不知道选项devServer.index的用例是什么。

我认为对此选项的更改将反映在devServer.historyApiFallback选项中,但是在我启动dev-server(将devServer.index设置为'demo.html')之后,控制台告诉我'404s将回退到/ index .html”,而不是“ /demo.html”。

谷歌搜索几分钟后,我找不到该选项的任何示例。

任何人都可以解释并举例说明以便更好地理解吗?谢谢。

2 个答案:

答案 0 :(得分:0)

结论:devServer.publicPath指定的目录外,devServer.index配置与目录访问规则无关。

说明: 开发服务器对目录请求的响应方式由服务器本身决定,我想每次您从静态服务资源访问目录时,开发服务器都会在该文件夹下使用索引文件(例如index.html)来响应您。 但是,更改选项devServer.index不会影响此规则。它仅影响由选项devServer.publicPath指定的目录。默认情况下,dev-server不会为publicPath下的目录请求找到索引文件,并且会给出404响应。将devServer.index更改为值'index.html'后,服务器将在其请求的文件夹下以文件“ index.html”响应这些请求。这就是该选项的用例。

提示:

  • 提供的选项值将全部视为相对于devServer.publicPath的相对路径(相对于服务器的相对路径不可用)。
  • 您可以指定任何类型的文件,而不仅仅是html。

如果有任何错误,请更正我的回答,谢谢。

答案 1 :(得分:0)

给我打电话一个泥泞的骗子,但是我长大了,我叫我的HTML文件index.htm,所以现在只为webpack创建一个index.html令我很伤心。因此,在花了几个小时试图修复它之后,我终于在此之后发现了这个帖子,以及这个错误报告:

https://github.com/webpack/webpack-dev-server/issues/2540

如果要使用Webpack开发服务器更改用作公用目录中索引的文件的名称,则可以完成所有操作:

  devServer: {
    contentBase: path.join(__dirname, "public/"),
    port: 3000,
    publicPath: "http://localhost:3000/dist/",
    hotOnly: true,
    staticOptions: { index: 'index.htm' }
  },

请注意staticOptions: { index: 'index.htm' }。那就是魔术发生的地方。

我同意,这是说devServer.index属性似乎没有作用。但是它绝对应该做的事情是可能的。 ew。