zoukankan      html  css  js  c++  java
  • webpack下,项目打包再window下和linux下对路径大小写法处理不一样

    上周,在项目部署的时候出现一个页面css样式不正确,但是在本地开发过程中显示是正常的,但是在使用Jenkins自动编译打包部署时,页面布局显示错乱。

    分析过程:

      1、一开始以为地Jenkins打包编译的脚本代码有问题,经过排查是正常的。

      2、本地开发正常,打包版本不正常,分析可能是编译后css的优先级被改变,导致样式被覆盖。但是本地直接build,然后使用ngnix部署,发现样式是正常的。因此排除是样式优先级被覆盖问题

      3、把在本地手动打包的文件,替换Jenkins打包生成的dist文件,启动发现也是正常的。

      4、最后发现,Jenkins打包的代码显示找不到一个css文件。但是本地打包是不会显示这个问题。

    分析结果:

      由于css文件中,在import时,我把@import "css/vehicleArchives";误写成了@import "css/vehiCleArchives",导致找不到css文件。但是在本地开发过程和build完部署启动,都没有报找不到样式文件这个错误,因为我们猜测应该是windows环境和linux环境的区别。

      因为Jenkins自动打包部署程序是部署在linux系统下,而本地开发是在windows环境下。由于样式路径写错了,但是在windows下忽略了路径大小写的问题,而Linux是会区分大小写,因此提示无法找到文件。

      简单总结性项目再windows和linux下部署的差异:

      1、大小写敏感度不同:

        Linux下路径和文件名都是区分大小写的。abc/bcd/aa.jpg和abc/Bcd/aa.jpg是两个不同的文件路径,window访问没问题,Linux大小写敏感会导致找不到文件。

      2、盘符及目录分隔符的区别

        父子目录及目录与文件的分隔符,Windows是,而Linux是/,java编码最好使用File.separator(能够自动识别Widow或者Linux,使用想用的分隔符)

        两个不同路径分隔符,window下;,Linux下为:,java编码最好使用File.pathSeparator

       

     在前端开发过程中,暂未遇到盘符和分隔符的相关异常,后续有遇到再进行记录。

  • 相关阅读:
    通过docker构建zabbix监控系统
    python中执行shell命令
    silverlight计时器的使用
    Silverlight学习笔记2:Silverlight中使用多线程实现倒计时
    silverlight全屏模式
    ASP.NET后台调用JavaScript
    JavaScript容易误解的概念
    Silverlight学习笔记1:创建一个Silverlight应用程序
    JavaScript中==和===的区别
    利用Visual Studio International Pack 实现对汉字的简单操作
  • 原文地址:https://www.cnblogs.com/luoxuemei/p/12377951.html
Copyright © 2011-2022 走看看