现在情况如下:
1,webpack打包的前端单页面应用,publicPath为:/myproject
2,两个docker,内部的nginx配置文件必须一致,且都将挂载webpack打包的静态资源。
3,两个docker外部访问域名分别为http://xxx.xx.x/
和http://xxx.xx.x/myproject
4,两个docker内部的nginx关键配置如下:
location /myproject {
rewrite ^/myproject\/?(.*)$ /$1;
try_files $uri $uri/ /index.html?$args;
}
location / {
try_files $uri $uri/ /index.html?$args;
}
现在http://xxx.xx.x/
没有问题,但是http://xxx.xx.x/myproject
访问不行,求大神帮忙看看,docker内的nginx配置怎么写,webpack的打包配置也可以改,现在头都挠凸了,好几天了,解决不了...,求大神帮忙看看,万分感谢!!!
终于成功了,折磨了我一周,最终改动如下:
针对webpack配置:
针对
file-loader
,主要问题是css中引入的图片加载不出来,需要在file-loader
的option中加如下配置:其中最折磨我的是一个我万万没想到的地方,需要在webpack指定的
index.html
的head中添加如下标签:其实我一直发现,后台服务当收到请求时,一直把myproject当成api地址的一部分,其实它是域名的一部分,加的这个html标签其实就是解决了这个问题
最后是nginx配置,其实没有太多的配置,都很基础
意思是如果请求地址以
/myproject
开头,就去掉/myproject
,进而进入第二个location项,try_files主要是配合前端的vue-router的history
模式去掉#用的。