html/css/js basic.md

本文介绍了网页开发的基本概念,包括字符编码、HTML头部元素的作用、不同类型的HTML元素及其布局方式,以及CSS选择器的详细使用方法。

字符编码

所有数据在计算机中存储时都是以二进制进行存储的,文字也不例外。存的时候转换为二进制,读的时候二进制转换为字符

字符集

编码和解码所采用的规则。比如让a对应1,b对应2这种。常见的字符集:ASCII , GB2312,UTF-8(开发时使用的字符集都是UTF-8) 等

< head>头部

帮助浏览器或搜索引擎来解析网页

< meta>

< meta>标签用来设置网页的原数据(底层数据),元数据不是给用户看

  • charset:指定网页的字符集
  • name:指定的数据的名称
  • content:指定的数据的内容
// name中的keywords指的是搜索网站的关键字,也就是可以用content中的abc在浏览器中搜索的关键词
<meta name="keywords" content="abc">

// name中的description指的是这个网站的描述,对应的内容在content中。网站的描述会显示在搜索引擎的搜索结果中
<meta name="description" content="这是一个...的网站">


// 将页面重定向到另一个网站
// content 中的内容指的是3s之后跳转到另一个网站
<meta http-equiv="refresh" content="3; url=https://www.baidu.com/">

// title标签的内容是作为搜索结果的超链接上的文字显示
<title> ddddd </title>
  • 块元素
    在网页中一般通过块元素来进行布局

  • 行内元素

    • 行内元素主要用来包裹文字。一般情况下会在块元素中放行内元素,而不会在行内元素中放块元素
    • 块元素中基本什么都可以放
    • P元素中不能放任何的块元素
  • 浏览器在解析网页时,会自动对网页中不符合规范的内容进行修正:

    • 标签写在了根元素的外部
    • p元素中嵌套了块元素
    • 根元素中出现了除head和body以外的子元素
  • 超链接

    • 将超链接的href属性设置成#之后点击可以回到顶部
    • 可以跳转到页面的指定位置,只需将href的属性值设置成 #目标元素的id属性
<a href="#" Top>
// 跳转到id为bottom的内容处
<a href="#bottom" Top>

内敛框架ifream

用于向当前页面中引入一个其他页面

<iframe width="800" src="https://www.qq.com"></iframe>

选择器

常用选择器

元素选择器
类选择器
id选择器

复合选择器

  • 交集选择器

选中同时符合多个条件的元素,如下面代码中的divred
⚠️ 交集选择器中如果有元素选择器,必须以元素选择器开头(必须是div.red而不是red.div

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <style>
  .red{
    color: red;
  }
  div.red{
    font-size: 30px;
  }
  </style>
</head>
<body>
  <div class="red">div</div>
  <p class="red">p</p>
</body>
</html>
  • 并集选择器

同时选择多个选择器对应的元素

h1, div{
color: red;
}

#red, p{
color: red;
}
关系选择器
  • 子元素选择器

选中指定父元素的指定子元素

div > p{
color: red;
}
  • 后代元素选择器

选中指定元素内的指定后代元素

div span{
color: red;
}

相比而言,后代元素选择器的范围比子元素选择器大

  • 兄弟元素选择器
// 选择p标签后面的那个span
div + span{
color: red;
}

// 选择p标签后面的所有span
div ~ span{
color: red;
}
属性选择器
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <style>
  div[title]{
    color: red;
  }
  p[title="dddd"]{
    color: aquamarine;
    font-size: 30px;
  }
  h3[title ^= "hhhh"]{
    /* 选择以指定值开头的属性,这里包括hhhh和hhhhii */
    color: coral;
  }
  h5[title $= "jjjj"]{
    /* 选择以指定值结尾的属性,这里包括jjjj和kkjjjj */
    color: crimson;
  }
  h2[title *= "mmmm"]{
    color: teal;
  }
  </style>
</head>
<body>
  <div title="aaaa">div</div>
  <div title="bbbb">div</div>
  <div title="cccc">div</div>
  <p title="dddd">p</p>
  <p title="eeee">p</p>
  <p title="ffff">p</p>
  <h3 title="gggg">span</h3>
  <h3 title="hhhh">span</h3>
  <h3 title="hhhhii">span</h3>
  <h5 title="jjjj">span</h5>
  <h5 title="kkjjjj">span</h5>
  <h5 title="llll">span</h5>
  <h2 title="mmmm">span</h2>
  <h2 title="nmmmmn">span</h2>
  <h2 title="oooo">span</h2>
</body>
</html>

伪类选择器

伪类,就是不存在的类或者特殊的类,用来描述一个元素的特殊状态(如:第一个子元素,被点击的元素,鼠标移入的元素),伪类一般都使用:开头

ul>li:first-child {
  color: aquamarine;
  }
  ul>li:first-child {
    color: aquamarine;
  }

  /* 选中偶数位 */
  ul>li:nth-child(2n){
    color: tomato;
  }
  /* 选中偶数位 */
  ul>li:nth-child(even){
    color: tomato;
  }

  /* 选中奇数位 */
  ul>li:nth-child(2n+1){
    color: tomato;
  }
  /* 选中奇数位 */
  ul>li:nth-child(odd){
    color: tomato;
  }

以上所有的伪类都是根据所有的元素进行排序的

当然还有下面的这些,是在同类型元素中进行排序的

  • first-of-type
  • last-of-type
  • nth-of-type

:not

// 选中ul下面所有的li,除了第三个
ul>li:not(:nth-child(3)) {
 color: red;
}

超链接的伪类

超链接的状态:

  • 访问过的
  • 没访问过的
/* link代表没访问过的链接 */
a:link{
   color: burlywood;
 }
 /* visited代表访问过的链接 ,由于保护隐私的原因,visited这个伪类只能设置链接的颜色,大小等其他的都不能设置*/
 a:visited{
   color: violet;
 }
 /* 鼠标移入的状态 */
 a:hover{
   color: teal;
 }
 /* 鼠标点击的状态 */
 a:active{
   color: steelblue;
 }

伪元素选择器

伪元素表示一些页面中特殊的并不真实的存在的元素(特殊的位置)

使用::开头

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <style>
    /* 表示第一个字母 */
    p::first-letter{
      font-size: 30px;
    }
    /* 表示第一行 */
    p::first-line{
      background-color: thistle;
    }
    /* 表示选中的元素 */
    p::selection{
      background-color: teal;
    }

    /* 通过 ::before 和 ::after添加的内容在页面是不能用鼠标来选中的,因为这些是通过css添加的*/
    /* 必须结合content来使用 */
    /* 元素的开始 */
    div::before{
      content: "abc";
      color: aquamarine;
    }
    /* 元素的结束 */
    div::after{
      content: "def";
      color: cadetblue;
    }
  </style>
</head>

<body>
  <div>
      Hooray! It's snowing
  </div>
  <p>
      Hooray! It's snowing! It's time to make a snowman.James runs out. He makes a big pile of snow. He puts a big snowball on top. He adds a scarf and a hat. He adds an orange for the nose. He adds coal for the eyes and buttons.In the evening, James opens the door. What does he see? The snowman is moving! James invites him in. The snowman has never been inside a house. He says hello to the cat. He plays with paper towels.A moment later, the snowman takes James's hand and goes out.They go up, up, up into the air! They are flying! What a wonderful night!The next morning, James jumps out of bed. He runs to the door.He wants to thank the snowman. But he's gone
  </p>
</body>

</html>
分析代码; <!DOCTYPE html> <html lang="zh-cn"> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <title>京东TMS系统</title> <meta content="width=device-width, initial-scale=1.0" name="viewport" /> <link type="image/x-icon" href="/static/images/favicon.ico" rel="shortcut icon"> <!-- basic styles begin --> <link href="/static/assets/css/bootstrap.min.css" rel="stylesheet" type="text/css"/> <!-- basic styles end--> <!-- basic script begin --> <script src="/static/js/plugins/jquery-3.3.0.js" type="text/javascript"></script> <script src="/static/assets/js/bootstrap.min.js" type="text/javascript"></script> <script src="/static/assets/js/bootstrap-table.js" type="text/javascript"></script> <link href="/static/assets/css/bootstrap-table.css" rel="stylesheet" type="text/css"/> <!-- basic script end --> </head> <body lang="zh-CN"> <link href="/static/assets/css/font-awesome.min.css" rel="stylesheet" type="text/css"/> <!--[if IE 7]> <link href="/static/assets/css/font-awesome-ie7.min.css" rel="stylesheet"/> <![endif]--> <link href="/static/assets/css/ace.min.css" rel="stylesheet" type="text/css"/> <!--[if lte IE 8]> <link href="/static/assets/css/ace-ie.min.css" rel="stylesheet"/> <![endif]--> <link href="/static/assets/css/ace-rtl.min.css" rel="stylesheet" type="text/css"/> <link href="/static/assets/css/ace-skins.min.css" rel="stylesheet" type="text/css"/> <link href="/static/assets/css/bootstrap-datetimepicker.min.css" rel="stylesheet" media="screen"> <link href="/static/js/plugins/sweetalert/sweet-alert.css" rel="stylesheet" media="screen"> <link href="/static/js/plugins/dateRange/daterangepicker.css" rel="stylesheet" type="text/css" /> <link href="/static/css/boss.css" rel="stylesheet" type="text/css"/> <link href="/static/css/bootstrap-table-fixed-columns.min.css" type="text/css" rel="stylesheet" /> <style type="text/css"> .page-content {padding-left:24px;padding-right:24px;} .fixed-table-border { height: 0px !important; } .no-records-found{ display: none; } </style> <input type="hidden" id="contextPath" value=""/> <input type="hidden" id="userDefaultSiteCode" value=""/> <link href="/static/css/bootstrap-select.css" type="text/css" rel="stylesheet" /> <style> @media (max-width: 10000px) { .table-responsive { width: 100%; margin-bottom: 15px; overflow-x: scroll; overflow-y: hidden; -webkit-overflow-scrolling: touch; -ms-overflow-style: -ms-autohiding-scrollbar; border: 1px solid #ddd; } .table-responsive > .table > thead > tr > th, .table-responsive > .table > tbody > tr > td { white-space: nowrap; } tr{ white-space: nowrap; } th{ white-space: nowrap; } } #queryForm label{font-size:11px;} </style> <div class="main-content"> <div id="breadcrumbs" class="breadcrumbs"> <ul class="breadcrumb"> <li> <i class="icon-home home-icon"></i> <a href="#">首页</a> </li> <li> <a href="#">运输管理</a> </li> <li class="active">揽收运输单管理</li> </ul> </div> <div class="page-content"> <div class="search-area well" style="padding-left: 20px"> <form id="queryForm" class="form-horizontal" method="post"> <input type="hidden" name="excludeFlag" id="excludeFlag" /> <input type="hidden" name="strict" id="strict" /> <div class="row"> <div class="control-group search-group"> <label class="control-label search-lable100" for="scheduleCenterName">调度中心:</label> <input type="text" id="scheduleCenterName" class="search-input200" /> <input type="hidden" id="scheduleCenterCode" name="scheduleCenterCode" value="020D324" /> </div> <div class="control-group search-group"> <label class="control-label search-lable100" for="transbillCode">运单号:</label> <input type="text" id="transbillCode" name="transbillCode" class="search-input200" /> </div> <div class="control-group search-group"> <label class="control-label search-lable100" for="shipperCode">发货商家:</label> <select class="selectpicker search-input150" name="shipperCode" id="shipperCode" multiple data-actions-box="true" data-live-search="true" title="请选择发货商家" data-live-search-placeholder="请输入发货商家" data-none-results-text="暂无发货商家 {0}" data-select-all-text="全选" data-deselect-all-text="全不选"></select> <label for="excludeCheck" class="exclude-check-label">排除:</label> <input type="checkbox" class="exclude-check-box" id="excludeCheck" /> </div> <div class="control-group search-group"> <label class="control-label search-lable100" for="shipperCode">温层:</label> <select id="temperatureLayer" name="temperatureLayer" class="search-input200"> </select> </div> </div> <div class="row"> <div class="control-group search-group"> <label class="control-label search-lable100" for="beginProvinceId">揽收省份:</label> <select id="beginProvinceId" name="beginProvinceId" class="search-input200"> </select> </div> <div class="control-group search-group"> <label class="control-label search-lable100" for="beginCityId">揽收城市:</label> <select id="beginCityId" name="beginCityId" class="search-input200"> </select> </div> <div class="control-group search-group"> <label class="control-label search-lable100" for="beginCountyId">揽收县区:</label> <select id="beginCountyId" name="beginCountyId" class="search-input200"> </select> </div> <div class="control-group search-group"> <label class="control-label search-lable100" for="beginTownId">揽收乡区:</label> <select id="beginTownId" name="beginTownId" class="search-input200"> </select> </div> </div> <div class="row"> <div class="control-group search-group"> <label class="control-label search-lable100" for="industryType">行业类型:</label> <select id="industryType" name="industryType" class="search-input200"> </select> </div> <div class="control-group search-group"> <label class="control-label search-lable100" for="receiveJobCode">揽收任务单号:</label> <input type="text" id="receiveJobCode" name="receiveJobCode" class="search-input200" /> </div> <div class="control-group search-group"> <label class="control-label search-lable100" for="scheduleStatus">调度状态:</label> <select id="scheduleStatus" name="scheduleStatus" class="search-input200"> <option value="" selected="selected"></option> <option value="10">初始</option> <option value="20">待调度</option> <option value="30">已调度</option> <option value="100">已完成</option> <option value="200">取消</option> </select> </div> <div class="control-group search-group"> <label class="control-label search-lable100" for="selfFlag">揽收方式:</label> <select id="selfFlag" name="selfFlag" class="search-input200"> <option value="">全部</option> <option value="1">上门揽收</option> <option value="2">自送揽收</option> </select> </div> </div> <div class="row"> <div class="control-group search-group"> <label class="control-label search-lable100" for="operateTerminal">操作终端:</label> <select id="operateTerminal" name="operateTerminal" class="search-input200"> <option value="">全部</option> <option value="1">一体机</option> <option value="2">APP</option> </select> </div> <div class="control-group search-group"> <label class="control-label search-lable100" for="tcFlag">业务类型:</label> <select id="tcFlag" name="tcFlag" class="search-input200"> <option value=""></option> <option value="1">TC上门揽收</option> <option value="0">B网揽收</option> </select> </div> <div class="control-group search-group"> <label class="control-label search-lable100" for="receiveBeginTime">预约揽收开始时间:</label> <span class="input-icon input-icon-right"> <input id="receiveBeginTime" type="text" readonly="readonly" class="search-input200" style="background-color:#ffffff !important;" /> <input type="hidden" id="receiveBeginTimeBegin" name="receiveBeginTimeBegin" /> <input type="hidden" id="receiveBeginTimeEnd" name="receiveBeginTimeEnd" /> <i class="icon-calendar add-on"></i> </span> </div> <button class="btn btn-sm btn-purple" type="button" id="clearTime"> <i class="icon-undo icon-on-right bigger-110"></i>清空时间 </button> </div> <div class="row"> <div class="control-group search-group"> <label class="control-label search-lable100" for="createTime">创建时间:</label> <span class="input-icon input-icon-right"> <input id="createTime" type="text" readonly="readonly" class="search-input200" style="background-color: rgb(255, 255, 255) !important;"> <input type="hidden" id="createBeginTime" name="createBeginTime"> <input type="hidden" id="createEndTime" name="createEndTime"> <i class="icon-calendar add-on"></i> </span> </div> <div class="control-group search-group"> <label class="control-label search-lable100" for="transbillCode">发货地址:</label> <input type="text" id="beginAddress" name="beginAddress" class="search-input200" value=""> </div> </div> <div class="row"> <div class="col-xs-12"> <div class="control-group search-group" style="width: 100%; text-align: center;"> <button class="btn btn-sm btn-primary" type="button" id="queryBtn"> <i class="icon-search icon-on-right bigger-110"></i>查询 </button> <button class="btn btn-sm btn-info" type="button" id="batchReassignBtn"> <i class="icon-wrench icon-on-right bigger-110"></i>批量修改调度中心 </button> <button class="btn btn-sm btn-pink" type="button" id="exportBtn"> <i class="icon-share-alt icon-on-right bigger-110"></i>导出 </button> <input type="hidden" id="currentPage" name="currentPage" value="1"/> </div> </div> </div> </form> </div> <div class="row"> <div class="col-xs-12"> <div class="table-responsive" style="overflow: hidden"> <table class="table table-striped table-bordered table-hover" id="sample-table-1" data-toggle="table" data-height="500"> <thead> <tr> <th class="center" width="50"> <label> <input type="checkbox" id="checkboxAll" name="checkboxAll" title="全选/反选" /> <span class="lbl"></span> </label> </th> <th>操作</th> <th>揽收任务号|询价单号</th> <th>运单号</th> <th>发货商家</th> <th>订单来源</th> <th>业务类型</th> <th>承运商类型</th> <th>承运商车队</th> <th>承运商</th> <th>调度状态</th> <th>调度中心</th> <th>温层</th> <th>是否包装</th> <th>行业类型</th> <th>预计体积</th> <th>预计重量</th> <th>预计件数</th> <th>揽收省份</th> <th>揽收城市</th> <th>揽收县区</th> <th>揽收乡镇</th> <th>目的快运中心</th> <th>揽收方式</th> <th>预约揽收开始时间</th> <th>预约揽收结束时间</th> <th>取消揽收原因</th> <th>操作终端</th> <th>实测温度</th> </tr> </thead> <tbody id="dataTbody"> </tbody> </table> </div><!-- /.table-responsive --> <div id="pageBarDiv" class="row"></div> </div><!-- /span --> </div> </div><!-- /.page-content --> </div><!-- /.main-content --> <!-- Modal --> <div class="modal fade" id="inputDialog" tabindex="-1" role="dialog" aria-labelledby="inputDialogLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"> <span aria-hidden="true">×</span><span class="sr-only">Close</span> </button> <h4 class="modal-title" id="inputDialogLabel">修改调度中心</h4> </div> <div class="modal-body"> <table class="table table-striped table-bordered table-hover"> <tbody> <tr id="transbillCodeTR"> <td class="td-label">运单号:</td> <td> <input type="text" id="input_transbillCode" class="col-md-5" value="" disabled="disabled"><!-- 只能输入字母数字--> <span class="red">*</span> </td> </tr> <tr> <td class="td-label">所属调度中心:</td> <td> <input type="text" id="input_scheduleCenterName" name="input_scheduleCenterName" class="search-input300" value=""> <input type="hidden" id="input_scheduleCenterCode" name="input_scheduleCenterCode" value=""/> </td> </tr> </tbody> </table> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">取消</button> <button type="button" class="btn btn-primary" id="inputSubmitBtn" data-loading-text="正在处理..." >保存</button> </div> </div> </div> </div> <!-- page specific plugin scripts --> <script src="/static/assets/js/jquery.dataTables.min.js" type="text/javascript"></script> <script src="/static/assets/js/jquery.dataTables.bootstrap.js" type="text/javascript"></script> <script src="/static/js/plugins/json2.js" type="text/javascript"></script> <script src="/static/js/common/pcct.selector.js" type="text/javascript"></script> <script src="/static/js/common/basic-data-client.js" type="text/javascript"></script> <script src="/static/js/plugins/bootstrap-select.js" type="text/javascript"></script> <script src="/static/assets/js/bootstrap-table-fixed-columns.min.js" type="text/javascript"></script> <script src="/static/js/boss/receive-transbill/index.js?v=20240819" type="text/javascript"></script> <script src="/static/assets/js/ace-extra.min.js" type="text/javascript"></script> <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --> <!--[if lt IE 9]> <script src="/static/assets/js/html5shiv.js" type="text/javascript"></script> <script src="/static/assets/js/respond.min.js" type="text/javascript"></script> <![endif]--> <!-- ace scripts --> <script src="/static/assets/js/jquery-ui.1.12.1.js" type="text/javascript"></script> <script src="/static/assets/js/typeahead-bs2.min.js" type="text/javascript"></script> <script src="/static/assets/js/ace-elements.min.js" type="text/javascript"></script> <script src="/static/assets/js/ace.min.js" type="text/javascript"></script> <script src="/static/assets/js/bootstrap-datetimepicker.min.js" type="text/javascript"></script> <script src="/static/assets/js/bootbox.min.js" type="text/javascript"></script> <script src="/static/js/plugins/jquery.blockUI.js" type="text/javascript"></script> <script src="/static/js/plugins/sweetalert/sweet-alert.js" type="text/javascript"></script> <script src="/static/js/common/common-client.js" type="text/javascript"></script> <script src="/static/js/common/common-ui.js?v=20160909" type="text/javascript"></script> <script src="/static/js/common/utils.js?t=20150128" type="text/javascript"></script> <script src="/static/js/plugins/dateRange/moment.min.js" type="text/javascript"></script> <script src="/static/js/plugins/dateRange/daterangepicker.js" type="text/javascript"></script><script type="text/javascript"> /************将以下脚本部署至每一个页面底部</body> 之前且紧挨</body> 。每个页面只可引用一次,不可重复引用。*************/ var jaq = jaq || []; jaq.push(['account', 'JA2018_1121107']); jaq.push(['domain', 'jd.com']); //jaq.push(['erp_account', 'test']); //ERP帐号,erp_account为字段名固定不变,test填入用户erp帐号(调用方自己传,若不传,会记录用户的京东pin) (function () { var ja = document.createElement('script'); ja.type = 'text/javascript'; ja.async = true; ja.src = '//wl.jd.com/joya.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ja, s); })() </script> </body> </html>
09-05
这个 文件 有什么问题吗? user www-data; worker_processes auto; pid /run/nginx.pid; error_log /var/log/nginx/error.log; include /etc/nginx/modules-enabled/*.conf; events { worker_connections 6; # multi_accept on; } http { server { listen 80; server_name well.zuoyikj.cn; root /var/www/html/jeecg; location / { try_files $uri $uri/ /index.html; } location /jeecgboot/ { proxy_pass http://127.0.0.1:10000/jeecg-boot/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; set $my_proxy_add_x_forwarded_for $proxy_add_x_forwarded_for; if ($proxy_add_x_forwarded_for ~* "127.0.0.1"){ set $my_proxy_add_x_forwarded_for $remote_addr; } proxy_set_header X-Forwarded-For $my_proxy_add_x_forwarded_for; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } server { listen 443 ssl; server_name well.zuoyikj.cn; ssl_certificate /home/zuoyi/cert/well.zuoyikj.cn.pem; ssl_certificate_key /home/zuoyi/cert/well.zuoyikj.cn.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; root /var/www/html/jeecg; location / { try_files $uri $uri/ /index.html; } location /jeecgboot/ { proxy_pass http://127.0.0.1:10000/jeecg-boot/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; set $my_proxy_add_x_forwarded_for $proxy_add_x_forwarded_for; if ($proxy_add_x_forwarded_for ~* "127.0.0.1"){ set $my_proxy_add_x_forwarded_for $remote_addr; } proxy_set_header X-Forwarded-For $my_proxy_add_x_forwarded_for; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } server { listen 3005; server_name well.zuoyikj.cn; location /health-upload/ { alias /home/zuoyi/health/admin/upload/; autoindex on; charset utf-8; location ~* \.(jpg|jpeg|png|gif|bmp|webp|svg|txt)$ { expires 30d; add_header Cache-Control "public, no-transform"; } } location / { root /var/www/html/health-admin; index index.html; try_files $uri $uri/ /index.html; } location /ecg_api/ { proxy_pass http://localhost:8081/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location ~ /\.well-known { allow all; root /var/www/html; try_files $uri =404; } } server { listen 3006 ssl; server_name well.zuoyikj.cn; ssl_certificate /home/zuoyi/cert/well.zuoyikj.cn.pem; ssl_certificate_key /home/zuoyi/cert/well.zuoyikj.cn.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; location /health-upload/ { alias /home/zuoyi/health/admin/upload/; autoindex on; charset utf-8; location ~* \.(jpg|jpeg|png|gif|bmp|webp|svg|txt)$ { expires 30d; add_header Cache-Control "public, no-transform"; } location ~ /\. { deny all; } } location / { proxy_pass http://localhost:8081/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; types_hash_max_size 2048; # server_tokens off; # server_names_hash_bucket_size 64; # server_name_in_redirect off; include /etc/nginx/mime.types; default_type application/octet-stream; ## # SSL Settings ## ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE ssl_prefer_server_ciphers on; ## # Logging Settings ## access_log /var/log/nginx/access.log; ## # Gzip Settings ## gzip on; # gzip_vary on; # gzip_proxied any; # gzip_comp_level 6; # gzip_buffers 16 8k; # gzip_http_version 1.1; # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; ## # Virtual Host Configs ## include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; } #mail { # # See sample authentication script at: # # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript # # # auth_http localhost/auth.php; # # pop3_capabilities "TOP" "USER"; # # imap_capabilities "IMAP4rev1" "UIDPLUS"; # # server { # listen localhost:110; # protocol pop3; # proxy on; # } # # server { # listen localhost:143; # protocol imap; # proxy on; # } #}
最新发布
11-29
PS D:\DS\portal> node fix-tgz.js 🚀 开始批量修复 .tgz 组件包版本... 🔍 发现 7 个本地组件包: [ 'vue-grid-layout-2.3.7-sp1.tgz', 'vue-grid-layout-cus-2.3.72.tgz', 'yhlcomponents-1.2.0-sp10.tgz', 'yhlcomponents-1.3.2-sp9.tgz', 'yhlcomponents-codemirror-1.1.0.tgz', 'yhlcomponents-gantt-1.1.0.tgz', 'yhlcomponents-lowcode-1.0.0-sp12.tgz' ] 🔧 解压 vue-grid-layout-2.3.7-sp1.tgz ... 📁 检测到嵌套 /package 目录,切换路径 ✅ 版本修复成功: 2.3.7sp1 → 2.3.7-sp1 📦 正在重新打包... npm notice npm notice 📦 vue-grid-layout@2.3.7-sp1 npm notice Tarball Contents npm notice 33B .browserslistrc npm notice 353B .eslintrc.js npm notice 888B .github/ISSUE_TEMPLATE/bug_report.md npm notice 750B .github/ISSUE_TEMPLATE/feature_request.md npm notice 5.2kB CHANGELOG.md npm notice 1.1kB LICENSE npm notice 13.3kB README-zh_CN.md npm notice 15.6kB README.md npm notice 119B babel.config.js npm notice 346.5kB dist/vue-grid-layout.common.js npm notice 461.9kB dist/vue-grid-layout.common.js.map npm notice 347.0kB dist/vue-grid-layout.umd.js npm notice 462.5kB dist/vue-grid-layout.umd.js.map npm notice 200.2kB dist/vue-grid-layout.umd.min.js npm notice 627.7kB dist/vue-grid-layout.umd.min.js.map npm notice 17B docs/README.md npm notice 2.4kB examples/01-basic.html npm notice 3.0kB examples/01-basic.js npm notice 3.1kB examples/02-events.html npm notice 3.7kB examples/02-events.js npm notice 3.3kB examples/03-multiple-grids.html npm notice 3.7kB examples/04-allow-ignore.html npm notice 3.5kB examples/05-mirrored.html npm notice 2.5kB examples/06-responsive.html npm notice 2.5kB examples/06-responsive.js npm notice 2.3kB examples/07-prevent-collision.html npm notice 1.7kB examples/07-prevent-collision.js npm notice 2.7kB examples/app.css npm notice 340.1kB examples/vue.js npm notice 93.4kB examples/vue.min.js npm notice 1.3kB package.json npm notice 59B postcss.config.js npm notice 2.7kB public/app.css npm notice 1.1kB public/favicon.ico npm notice 649B public/index.html npm notice 11.5kB src/App.vue npm notice 6.8kB src/assets/logo.png npm notice 1.1kB src/components/CustomDragElement.vue npm notice 35.3kB src/components/GridItem.vue npm notice 17.4kB src/components/GridLayout.vue npm notice 452B src/components/index.js npm notice 10.6kB src/components/ResponsiveGridLayout.vue npm notice 462B src/components/TestElement.vue npm notice 1.1kB src/helpers/DOM.js npm notice 1.5kB src/helpers/draggableUtils.js npm notice 4.5kB src/helpers/responsiveUtils.js npm notice 18.6kB src/helpers/utils.js npm notice 101B src/main.js npm notice 1.0kB test/interact-test.html npm notice 2.1kB test/interact-test.js npm notice 439B vue.config.js npm notice Tarball Details npm notice name: vue-grid-layout npm notice version: 2.3.7-sp1 npm notice filename: vue-grid-layout-2.3.7-sp1.tgz npm notice package size: 794.6 kB npm notice unpacked size: 3.1 MB npm notice shasum: 950cd582bfe42d2bd19ce755ca12e3771d93429a npm notice integrity: sha512-If1SVg0p4yAg4[...]phKV1hLNpjm1Q== npm notice total files: 51 npm notice vue-grid-layout-2.3.7-sp1.tgz 📎 已备份原文件为: vue-grid-layout-2.3.7-sp1.tgz.backup ❌ 处理 vue-grid-layout-2.3.7-sp1.tgz 失败: ENOENT: no such file or directory, copyfile 'D:\DS\portal\temp_unpack\unpack_1761880291390_1kr9i\package\vue-grid-layout-2.3.7-sp1.tgz' -> 'D:\DS\portal\vue-g rid-layout-2.3.7-sp1.tgz' 清理目录失败: D:\DS\portal\temp_unpack\unpack_1761880291390_1kr9i EBUSY: resource busy or locked, rmdir 'D:\DS\portal\temp_unpack\unpack_1761880291390_1kr9i\package' 🔧 解压 vue-grid-layout-cus-2.3.72.tgz ... 📁 检测到嵌套 /package 目录,切换路径 🟢 版本无需修复: 2.3.72 📦 正在重新打包... npm notice npm notice 📦 vue-grid-layout-cus@2.3.72 npm notice Tarball Contents npm notice 33B .browserslistrc npm notice 353B .eslintrc.js npm notice 888B .github/ISSUE_TEMPLATE/bug_report.md npm notice 750B .github/ISSUE_TEMPLATE/feature_request.md npm notice 5.2kB CHANGELOG.md npm notice 1.1kB LICENSE npm notice 13.3kB README-zh_CN.md npm notice 15.6kB README.md npm notice 119B babel.config.js npm notice 346.2kB dist/vue-grid-layout-cus.common.js npm notice 461.2kB dist/vue-grid-layout-cus.common.js.map npm notice 346.7kB dist/vue-grid-layout-cus.umd.js npm notice 461.9kB dist/vue-grid-layout-cus.umd.js.map npm notice 200.0kB dist/vue-grid-layout-cus.umd.min.js npm notice 627.2kB dist/vue-grid-layout-cus.umd.min.js.map npm notice 17B docs/README.md npm notice 2.4kB examples/01-basic.html npm notice 3.0kB examples/01-basic.js npm notice 3.1kB examples/02-events.html npm notice 3.7kB examples/02-events.js npm notice 3.3kB examples/03-multiple-grids.html npm notice 3.7kB examples/04-allow-ignore.html npm notice 3.5kB examples/05-mirrored.html npm notice 2.5kB examples/06-responsive.html npm notice 2.5kB examples/06-responsive.js npm notice 2.3kB examples/07-prevent-collision.html npm notice 1.7kB examples/07-prevent-collision.js npm notice 2.7kB examples/app.css npm notice 340.1kB examples/vue.js npm notice 93.4kB examples/vue.min.js npm notice 1.4kB package.json npm notice 59B postcss.config.js npm notice 2.7kB public/app.css npm notice 1.1kB public/favicon.ico npm notice 649B public/index.html npm notice 11.5kB src/App.vue npm notice 6.8kB src/assets/logo.png npm notice 1.1kB src/components/CustomDragElement.vue npm notice 34.9kB src/components/GridItem.vue npm notice 17.4kB src/components/GridLayout.vue npm notice 452B src/components/index.js npm notice 10.6kB src/components/ResponsiveGridLayout.vue npm notice 462B src/components/TestElement.vue npm notice 1.1kB src/helpers/DOM.js npm notice 1.5kB src/helpers/draggableUtils.js npm notice 4.5kB src/helpers/responsiveUtils.js npm notice 18.6kB src/helpers/utils.js npm notice 101B src/main.js npm notice 1.0kB test/interact-test.html npm notice 2.1kB test/interact-test.js npm notice 439B vue.config.js npm notice Tarball Details npm notice name: vue-grid-layout-cus npm notice version: 2.3.72 npm notice filename: vue-grid-layout-cus-2.3.72.tgz npm notice package size: 796.0 kB npm notice unpacked size: 3.1 MB npm notice shasum: 9af6f6c64525fa1edc2dba0fea113404f7cad190 npm notice integrity: sha512-SjWgUSudUYJmX[...]pSeNuA6T5skEw== npm notice total files: 51 npm notice vue-grid-layout-cus-2.3.72.tgz 📎 已备份原文件为: vue-grid-layout-cus-2.3.72.tgz.backup ❌ 处理 vue-grid-layout-cus-2.3.72.tgz 失败: ENOENT: no such file or directory, copyfile 'D:\DS\portal\temp_unpack\unpack_1761880299010_r8fjq\package\vue-grid-layout-cus-2.3.72.tgz' -> 'D:\DS\portal\vue -grid-layout-cus-2.3.72.tgz' 清理目录失败: D:\DS\portal\temp_unpack\unpack_1761880299010_r8fjq EBUSY: resource busy or locked, rmdir 'D:\DS\portal\temp_unpack\unpack_1761880299010_r8fjq\package' 🔧 解压 yhlcomponents-1.2.0-sp10.tgz ... 📁 检测到嵌套 /package 目录,切换路径 ✅ 版本修复成功: 1.2.0sp10 → 1.2.0-sp10 📦 正在重新打包... npm notice npm notice 📦 yhlcomponents@1.2.0-sp10 npm notice Tarball Contents npm notice 351B README.md npm notice 3.2MB dist/yhlcomponents-ui.js npm notice 3.9MB dist/yhlcomponents-ui.js.map npm notice 1.4kB package.json npm notice Tarball Details npm notice name: yhlcomponents npm notice version: 1.2.0-sp10 npm notice filename: yhlcomponents-1.2.0-sp10.tgz npm notice package size: 2.1 MB npm notice unpacked size: 7.1 MB npm notice shasum: e453a42675509fbaa078c2e15d402c886837580c npm notice integrity: sha512-QaynTyu2Hm4d/[...]SYEuGZ0wl/sMA== npm notice total files: 4 npm notice yhlcomponents-1.2.0-sp10.tgz 📎 已备份原文件为: yhlcomponents-1.2.0-sp10.tgz.backup ❌ 处理 yhlcomponents-1.2.0-sp10.tgz 失败: ENOENT: no such file or directory, copyfile 'D:\DS\portal\temp_unpack\unpack_1761880303476_7cfa4\package\yhlcomponents-1.2.0-sp10.tgz' -> 'D:\DS\portal\yhlcomp onents-1.2.0-sp10.tgz' 清理目录失败: D:\DS\portal\temp_unpack\unpack_1761880303476_7cfa4 EBUSY: resource busy or locked, rmdir 'D:\DS\portal\temp_unpack\unpack_1761880303476_7cfa4\package' 🔧 解压 yhlcomponents-1.3.2-sp9.tgz ... 📁 检测到嵌套 /package 目录,切换路径 ✅ 版本修复成功: 1.3.2sp9 → 1.3.2-sp9 📦 正在重新打包... npm notice npm notice 📦 yhlcomponents@1.3.2-sp9 npm notice Tarball Contents npm notice 351B README.md npm notice 1.9MB dist/yhlcomponents-ui.js npm notice 1.6MB dist/yhlcomponents-ui.js.map npm notice 1.4kB package.json npm notice Tarball Details npm notice name: yhlcomponents npm notice version: 1.3.2-sp9 npm notice filename: yhlcomponents-1.3.2-sp9.tgz npm notice package size: 845.5 kB npm notice unpacked size: 3.6 MB npm notice shasum: 961243db76cdb25b1037f70d8ecb68cb8cee8131 npm notice integrity: sha512-IUJw5FTcDZLz0[...]xfQt03If6F9hg== npm notice total files: 4 npm notice yhlcomponents-1.3.2-sp9.tgz 📎 已备份原文件为: yhlcomponents-1.3.2-sp9.tgz.backup ❌ 处理 yhlcomponents-1.3.2-sp9.tgz 失败: ENOENT: no such file or directory, copyfile 'D:\DS\portal\temp_unpack\unpack_1761880307760_l3job\package\yhlcomponents-1.3.2-sp9.tgz' -> 'D:\DS\portal\yhlcompon ents-1.3.2-sp9.tgz' 清理目录失败: D:\DS\portal\temp_unpack\unpack_1761880307760_l3job EBUSY: resource busy or locked, rmdir 'D:\DS\portal\temp_unpack\unpack_1761880307760_l3job\package' 🔧 解压 yhlcomponents-codemirror-1.1.0.tgz ... 📁 检测到嵌套 /package 目录,切换路径 🟢 版本无需修复: 1.1.0 📦 正在重新打包... npm notice npm notice 📦 yhlcomponents-codemirror@1.1.0 npm notice Tarball Contents npm notice 357B README.md npm notice 452.0kB dist/yhlcomponents-codemirror-ui.js npm notice 3.0MB dist/yhlcomponents-codemirror-ui.js.map npm notice 1.3kB package.json npm notice Tarball Details npm notice name: yhlcomponents-codemirror npm notice version: 1.1.0 npm notice filename: yhlcomponents-codemirror-1.1.0.tgz npm notice package size: 989.4 kB npm notice unpacked size: 3.5 MB npm notice shasum: 6b3339171ab830daacbd65886c2a34d6f17a0671 npm notice integrity: sha512-ebcduouOVl6IZ[...]wwYtzZSTh9DjA== npm notice total files: 4 npm notice yhlcomponents-codemirror-1.1.0.tgz 📎 已备份原文件为: yhlcomponents-codemirror-1.1.0.tgz.backup ❌ 处理 yhlcomponents-codemirror-1.1.0.tgz 失败: ENOENT: no such file or directory, copyfile 'D:\DS\portal\temp_unpack\unpack_1761880311198_ocd9t\package\yhlcomponents-codemirror-1.1.0.tgz' -> 'D:\DS\po rtal\yhlcomponents-codemirror-1.1.0.tgz' 清理目录失败: D:\DS\portal\temp_unpack\unpack_1761880311198_ocd9t EBUSY: resource busy or locked, rmdir 'D:\DS\portal\temp_unpack\unpack_1761880311198_ocd9t\package' 🔧 解压 yhlcomponents-gantt-1.1.0.tgz ... 📁 检测到嵌套 /package 目录,切换路径 🟢 版本无需修复: 1.1.0 📦 正在重新打包... npm notice npm notice 📦 yhlcomponents-gantt@1.1.0 npm notice Tarball Contents npm notice 357B README.md npm notice 352B dist/dot.png npm notice 748.1kB dist/yhlcomponents-gantt-ui.js npm notice 4.6MB dist/yhlcomponents-gantt-ui.js.map npm notice 1.5kB package.json npm notice Tarball Details npm notice name: yhlcomponents-gantt npm notice version: 1.1.0 npm notice filename: yhlcomponents-gantt-1.1.0.tgz npm notice package size: 1.0 MB npm notice unpacked size: 5.3 MB npm notice shasum: ee4b9ae0bdda2fc579a2223373c379c8ed79e629 npm notice integrity: sha512-TRVNkQbgbol7B[...]g3p3/Ea8ykLow== npm notice total files: 5 npm notice yhlcomponents-gantt-1.1.0.tgz 📎 已备份原文件为: yhlcomponents-gantt-1.1.0.tgz.backup ❌ 处理 yhlcomponents-gantt-1.1.0.tgz 失败: ENOENT: no such file or directory, copyfile 'D:\DS\portal\temp_unpack\unpack_1761880314833_exytt\package\yhlcomponents-gantt-1.1.0.tgz' -> 'D:\DS\portal\yhlco mponents-gantt-1.1.0.tgz' 清理目录失败: D:\DS\portal\temp_unpack\unpack_1761880314833_exytt EBUSY: resource busy or locked, rmdir 'D:\DS\portal\temp_unpack\unpack_1761880314833_exytt\package' 🔧 解压 yhlcomponents-lowcode-1.0.0-sp12.tgz ... 📁 检测到嵌套 /package 目录,切换路径 ✅ 版本修复成功: 1.0.0sp12 → 1.0.0-sp12 📦 正在重新打包... npm notice npm notice 📦 yhlcomponents-lowcode@1.0.0-sp12 npm notice Tarball Contents npm notice 0B README.md npm notice 352B dist/dot.png npm notice 56.0kB dist/element-icons.ttf npm notice 28.2kB dist/element-icons.woff npm notice 6.8kB dist/logo.png npm notice 1.6kB dist/off_eye.png npm notice 6.4MB dist/yhlcomponents-lowcode-ui.js npm notice 7.0MB dist/yhlcomponents-lowcode-ui.js.map npm notice 1.5kB package.json npm notice Tarball Details npm notice name: yhlcomponents-lowcode npm notice version: 1.0.0-sp12 npm notice filename: yhlcomponents-lowcode-1.0.0-sp12.tgz npm notice package size: 3.8 MB npm notice unpacked size: 13.5 MB npm notice shasum: c74370b1c26bf8a56ae8dd40361e244ef0acb679 npm notice integrity: sha512-8jTMnGibHuiNO[...]NC/V01tB3VZ6g== npm notice total files: 9 npm notice yhlcomponents-lowcode-1.0.0-sp12.tgz 📎 已备份原文件为: yhlcomponents-lowcode-1.0.0-sp12.tgz.backup ❌ 处理 yhlcomponents-lowcode-1.0.0-sp12.tgz 失败: ENOENT: no such file or directory, copyfile 'D:\DS\portal\temp_unpack\unpack_1761880318487_qto8n\package\yhlcomponents-lowcode-1.0.0-sp12.tgz' -> 'D:\D S\portal\yhlcomponents-lowcode-1.0.0-sp12.tgz' 清理目录失败: D:\DS\portal\temp_unpack\unpack_1761880318487_qto8n EBUSY: resource busy or locked, rmdir 'D:\DS\portal\temp_unpack\unpack_1761880318487_qto8n\package' ✅ 所有处理完成!请运行 npm install 安装依赖 PS D:\DS\portal>
11-01
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值