关于微服务全量升级时静态资源的升级方案

第一个问题是上传文件的类型问题

现象:通过OSS客户端上传的css样式文件,在访问网站页面的时候一切正常,而通过ossfs的方式上传后的文件,却在访问网站的时候没有样式,但是通过F12跟踪请求的情况一切正常。

……分析,调试,对比……此处省略5000字

原因:在通过scp上传css类型文件的时候,文件类型被偷梁换柱的转换了,本来应该是text/css类型的文件却变成了application/octet-stream,导致页面渲染样式失败,而从请求来看没有任何异常……。

之所以出现这种情况是因为ossfs通过查询/etc/mime.types中的内容来确定文件的Content-Type,如果该文件不存在或者内容不全,文件类型就会被置成一个默认值。

解决办法:通过yum install mailcap命令添加,添加后的部分内容如下图

重新进行挂载并再次上传css文件,类型正常了,网站的访问也正常了。

第二个问题是挂载权限

现象:文件解压时无法创建文件夹。

原因是挂载的根文件的权限只允许属主进行读写,所以在其内部创建文件夹的时候,如果是非属主用户就会没有权限,哪怕是超级用户root也不行。

解决方案:挂载oss的时候加上参数-o allow_other,默认赋予挂载目录777权限,特别的,这个参数只是对目录有效,目录内的文件并不会继承该目录的权限

ossfs your_bucket your_mount_point -ourl=your_endpoint -o allow_other

至此才算真正实现了静态资源通过jenkins打包发布。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181219G00EPZ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券