为了账号安全,请及时绑定邮箱和手机立即绑定

旧版本的webpack多页面配置,按目录访问,index.html必须手打出来么?

旧版本的webpack多页面配置,按目录访问,index.html必须手打出来么?

MMMHUHU 2019-05-23 16:25:03
项目是一个老项目,先贴下webpack配套的开发服务器配置"webpack":"^2.7.0","webpack-bundle-analyzer":"^2.2.1","webpack-dev-middleware":"^1.10.0","webpack-hot-middleware":"^2.18.0","webpack-merge":"^4.1.0"多页面的HtmlWebpackPlugin的filename的配置是page1:'page1/index.html',page2:'page2/index.html'开发服务器起来之后,发现如果直接访问http://localhost:8080/page1是不行的,必须把后面的index.html手动打上才能正常访问单页面的时候不存在这个问题,index.html可以直接通过http://localhost:8080访问新版本的webpack试了一下,是没有问题的,也可以直接通过http://localhost:8080/page1访问因为旧版本的webpack没用过,所以搞不清楚是我的配置的原因,还是因为webpack或者插件本身的原因?
查看完整描述

2 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

问题解决了,是webpack-dev-middleware中遗留的问题,虽然没找到issue,但现在基本上都建议用webpack-dev-server了。楼上提醒了我用webpack-dev-server,问题已经解决了,可以直接通过page1/这种路径去访问了。
                            
查看完整回答
反对 回复 2019-05-23
?
郎朗坤

TA贡献1921条经验 获得超9个赞

就像题主说的,你是多页面的形式,所以输出的dist肯定也是符合多页面的组织形式
默认情况下每个目录的索引文件都是当前路径下的index.html文件
如果使用了WDS服务,你可以进入http://localhost:8080/webpack-dev-server查看在内存中生成的资源地址,我觉得是你资源地址没生成,或者url不对
当然,也提供另外的思路你可以使用devServer.openPage配置项,直接设置默认打开的url(记得devServer.open:true)高阶一点的你就需要devServer.historyApiFallback的配置项如配置成的配置项
{
devServer:{
historyApiFallback:{
rewrites:[
{
//不以`/`结尾的路径和后边不含资源后缀的路径,均重写url
from:/^(\/.*)\/$/,
to:function(context){
console.log('1',context.parsedUrl.href+'index.html')
returncontext.parsedUrl.href+'index.html'
}
},
{
//不以`/`结尾的路径和后边不含资源后缀的路径,均重写url
from:/^[^.]*$/,
to:function(context){
console.log('2',context.parsedUrl.href+'/index.html')
returncontext.parsedUrl.href+'/index.html'
}
}
]
},
}
}
                            
查看完整回答
反对 回复 2019-05-23
  • 2 回答
  • 0 关注
  • 608 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号