完美

[学习|工作|博客|交流平台|完美起航]

作者头像test1232018.03.02 15:58 

vue-router

路由:将组件components映射到路由routes,然后告诉vue-router在哪里渲染它们1.app.vue只要每个页面不变的都放上去,比如导航条/左侧栏2.点击页卡,切换主体content的内容,导航条/左侧栏不会变动(这是路由的作用)3.app.vue 使用视图<router-view></router-view>4.app.vue处<el-menudefault-active="/activePublic"class="el-menu-vertical-demo":router="true"> <el-menu-itemindex="/activePublic":class="{'isActive':active}">活动发布</el-menu-item> <el-menu-itemindex="/activeManage":class="{'isActive':!active}">活动管理</el-menu-item> </el-menu>@是根目录..error compiling template 需要一个<div id=“XXX”></div>的根元素this.$router和router使用起来一样,使用this.$router的原因是不想在每个独立需要封装路由的组件中都导入路由动态路由匹配:加了冒号就可以动态匹配同一组件文件夹下的组件constrouter=newVueRouter({ routes:[{ path:'user/:id',component:User}] })现在,像user/foo和user/bar都可以映射到相同的路由一个【路径参数】使用冒号:标记,当匹配到一个路由时,参数值会被设置到this.$routes.params,可以在每个组件内使用嵌套路由:定义:被渲染的组件中包含了自己的嵌套,叫做嵌套路由<router-view>是最顶层的出口,渲染最高级路由匹配到的组件,一个被渲染组件同样可以包含自己的嵌套<router-view>。例如在User组件中添加一个<router-view>constrouter=newVueRouter({ routes:[{ path:'/user/:id',component:User, children:[{ path:'profile',//当/user/:id/profile匹配成功, component:UserProfile//UserProfile会被渲染在User的<router-view>中 },{ path:'posts',//当/user/:id/posts匹配成功 component:UserPosts//UserPosts会被渲染在User的<router-view>中 }] }] })编程式导航router.push(location, onComplete?, onAbort?)

vue 1000 1

作者头像zyw3272018.02.05 22:14 

less学习之初步二

一、混合定义函数及混合函数的传参less定义多个具有相同名称和参数数量的混合是合法的。带多个参数的混合,参数用分号分割,逗号会作为列表传递,即如果传参的括号里面全部都是以逗号分割,那么会依次传给各个参数值,如果传参的括号里面既有逗号也有分号,则会把分号前面的看做一个整体传给一个参数值。例如.mixin(@color;){ color-1:@color; } .mixin(@color;@padding:5px;){ color-2:@color; padding-2:@padding; } .mixin(@color;@padding;@margin:2px){ color-3:@color; padding-3:@padding; margin:@margin@margin@margin@margin; } .some.selectordiv{ .mixin(yellow); } //函数混合传参 .mixin(@color;@padding:xxx;@margin:2px){ color-3:@color; padding-3:@padding; margin:@margin@margin@margin@margin; } .div{ .mixin(red,2px,3px;something,ele);//此处第一个分号前会作为一个参数,后面的作为第二个参数 } .div1{ .mixin(green,2px,3px);//此处则是作为三个参数传递 } .div2{ .mixin(black,2px,3px;);//此处则是作为三个参数传递 }上述编译后结果:.some.selectordiv{ color-1:#ffff00; color-2:#ffff00; padding-2:5px; } /*混合参数传参*/ .div{ color-3:#ff0000,2px,3px; padding-3:something,ele; margin:2px2px2px2px; } .div1{ color-3:#008000; padding-3:2px; margin:3px3px3px3px; } .div2{ color-3:#000000,2px,3px; padding-3:xxx; margin:2px2px2px2px; }二、less函数命名参数less的函数支持命名参数的形式传参,例如//命名参数 .mixin(@color:black;@margin:10px;@padding:20px){ color:@color; margin:@margin; padding:@padding; } .class1{ .mixin(@margin:20px;@color:red); } .class2{ .mixin(yellow,@padding:40px); } .class3{ .mixin(@padding:80px) }编译的结果为:.class1{ color:#ff0000; margin:20px; padding:20px; } .class2{ color:#ffff00; margin:10px; padding:40px; } .class3{ color:#000000; margin:10px; padding:80px; }三、函数的匹配模式级函数变量返回值定义多个相同名称的函数,通过

less 1104 3

作者头像zyw3272018.02.05 19:49 

less学习笔记之less初步

一、less简单写法/**less的写法如下*/ .content{ ul{ list-style:none; } li{ height:15px; line-height:25px; padding-left:15px; background:url("./images/arr.jpg")no-repeatcenterleft; } a{ text-decoration:none; color:#535353; font-family:MicrosoftYaHei,"黑体",Arial,SimSun,ArialUnicodeMS,MingLiU,Helvetica; } }这是less最基本的写法。和css样式表有点类似,但是又有不同,less的这种写法减少了css代码的冗余。二、带变量的less写法less的变量使用@加名字定义,列入定义@name。@green:green;//定义了绿色 @size:3rem; @white:white; header,footer{ background:@green; font-size:@size; h1{ color:@white; } } //将变量作为属性名的写法 @width:width; .@{width}{ @{width}:150px; } @imgUrl:"https://www.baidu.com/img"; header{ background:@greenurl('@{imgUrl}/bd_logo1.png'); height:150px; }以上就是less的变量定义。使用变量的方式写less方便了后期样式的维护,只需修改变量值就可以改变整体样式。三、less的函数定义less还可以定义函数,使用函数更加方便了我们对样式的维护。//无参数函数定义 .font-sty(){ color:red; font-family:MicrosoftYaHei,"黑体",Arial,SimSun,ArialUnicodeMS,MingLiU,Helvetica; } h1{ font-size:18px; .font-sty//无参数函数引用 } h2{ font-size:16px; .font-sty } //带选择器的混合使用 .myButton(){ &:hover{ border:1pxsolid#56ffcf; } } button{ .myButton; } //带参数的函数定义 .border(@color){ border:1pxsolid@color; } h2{ &:hover{ .border(green); } } h1{ &:hover{ .border(red); } } //带默认值的函数定义 .border_y(@color:#0fb9ff){ border:1pxsolid@color; } h1{ &:hover{ .border_y(); } }以上编译后样式如下:h1{ font-size:18px; color:red; font-family:MicrosoftYaHei,"黑体",Arial,SimSun,ArialUnicodeMS,MingLiU,Helvetica;

less 1099 1

作者头像wuyande2018.02.05 13:11 

HTML 标签详解

浏览器支持情况:IEFirefoxChromeSafariOpera所有浏览器都支持 <meta> 标签。定义和用法<meta> 元素可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。<meta> 标签位于文档的头部,不包含任何内容。<meta> 标签的属性定义了与文档相关联的名称/值对。HTML 与 XHTML 之间的差异在 HTML 中,<meta> 标签没有结束标签。在 XHTML 中,<meta> 标签必须被正确地关闭。提示和注释:注释:<meta> 标签永远位于 head 元素内部。注释:元数据总是以名称/值的形式被成对传递的。使用如下<metahttp-equiv="charset"content="utf-8"> <metahttp-equiv="expires"content="31Dec2008"> <metahttp-equiv="refresh"content="60"> <metaname="description"content="描述文字"> <metaname="keywords"content="关键字">可选属性如下:属性值描述http-equivcontent-typeexpiresrefreshset-cookie把 content 属性关联到 HTTP 头部。nameauthordescriptionkeywordsgeneratorrevisedothers把 content 属性关联到一个名称。schemesome_text定义用于翻译 content 属性值的格式。

meta标签 349 0

作者头像zyw3272018.01.27 14:50 

IaaS vs CaaS vs PaaS vs FaaS:选择合适的平台

探索各种云平台,为您找到最好的平台。由Jeff Kubina授权的CC By-SA 2.0“Circumhorizontal Arc”是否购买,构建或采用了开放源码,您可能已经在使用某种软件平台来构建,部署和扩展您的应用程序。经过多年将应用程序中的常用功能提取到较低级别的抽象中之后,平台就出现了。 如果以故意的意图和设计完成,你会得到一个平台。 如果不是的话,你可能最终会在自己的手中产生一个有机的混乱,并发现自己正在寻找其他人为了出路而建造的平台,一线希望。适合您的平台将在灵活性和简单性之间实现您所需要的平衡,使您能够更快地构建,而不会受到太多限制。 本文将分析云平台的各个方面,帮助您找到最适合您情况的方案。每个人都有自己的想法,看看这个完美的平台是什么样子的,因为每个人的用例都有些不同。 但是每个人都在寻找两件大事:发展速度加快自动化操作专长这两个需求推动了大部分软件平台的投资。 真的,他们是你可能用来自动化任何事情的相同论点:速度和可重复性。因此,要知道没有哪个平台对所有用户都是完美的,你应该自己写吗? 如果你自己写,你是建立在现有的平台之上吗? 你如何选择一个基础平台开始? 你是否想要一个从上到下紧密集成的平台,还是你想要多层平台与强壮的扩展点松散连接?这些都是很难回答的问题,而且没有一个适合每个人的答案。 平台幸福之旅是发现,比较和权衡之一。 所以让我们深入。平台频谱云平台的彩虹对每个人都有一种风味。每个厂商都会告诉你他们的软件是特殊的,甚至是独一无二 他们都试图区分他们的产品提供不可替代的价值。 但是,如果你看起来足够硬,并容忍一些粗糙的边缘,你可以按照他们提供的接口类型对这些产品进行分组。云平台的例子软件平台“软件即服务”这个术语中最古老的一个可以追溯到2000年左右,它提到将打包的软件产品和支持服务捆绑到一个托管的解决方案中,以避免经常不为人知的实施和操作成本。一个SaaS产品本身可以成为一个平台。该术语的一些原始用途描述了取代传统企业资源规划(ERP)和客户关系管理(CRM)平台的解决方案。像Salesforce和SAP这样的公司在这个领域非常成功,没有大型工程部门或IT部门的客户可以构建和管理这些复杂的系统。即使拥有这些资源的公司也可能认为这些事情超出了自己的核心竞争力,不值得建设或运营。然而,最近几乎所有类别的软件都可以作为SaaS获得,从电子邮件到文字处理到内容管理系统。另一方面是基础设施即服务。将应用程序配置到基础架构平台上基础设施平台基础架构平台在SaaS之后不久就到了。 VMware GSX Server(2006)和Amazon Elastic Compute Cloud(EC2,2006)都提供了早期的虚拟化平台。虽然VMware最初专注于企业内部部署安装,但由于其托管的IaaS和SaaS产品的结合,亚马逊网络服务在更广阔的市场中引起了共鸣。后来,Rackspace和NASA开发了OpenStack(2010),作为VMware的vSphere(2009年发布,取代GSX)和亚马逊EC2的开源内部竞争者。这些IaaS主要提供一些特定的抽象:虚拟机计算节点,软件定义的网络和可附加存储。与SaaS一样,托管的IaaS的主要卖点是外包运营和自动化的其他手动容量供应,但与SaaS不同的是,托管的IaaS也出售您自己软件的接近无限规模的幻想。对于大多数对基础设施外包感兴趣的公司,AWS提供的功能比他们以往

IaaS 1265 2

作者头像zyw3272018.01.27 14:06 

FaaS,PaaS和无服务器体系结构的好处

note: faas:功能即服务 paas:平台即服务本文讨论无服务器是什么,将其与PaaS和SPaaS进行比较,无服务器体系结构的优点和成本以及对框架的需求。最初,无服务器意味着开发人员不必关心设置和管理运行其后端应用程序的服务器。不是说没有涉及服务器,而是后端基础架构是由第三方提供者维护的,所需的功能是作为服务提供的,包括数据库,消息传递,认证等。这个服务基础结构通常被称为后端即服务(Backend-as-a-服务(BaaS)或移动后端即服务(MBaaS)。但是,当亚马逊在2014年宣布AWS Lambda时,将无服务器模式推向了另一个层次,为云中运行的应用程序引入了新的系统架构。没有永久进程在服务器上运行,等待HTTP请求或API调用,而是一个触发AWS服务器上的一段代码(通常只是一个函数)的事件机制。使用这种范例时,不必考虑服务器。重要的是写一段代码在某个事件发生时被执行。云提供商负责查找运行代码的服务器,并在需要时扩展。一旦执行结束,用于运行这些功能的容器就会退役。并且执行以100毫秒为单位计量,用户仅对代码运行时消耗的资源收费。一些人称这种功能即服务(FaaS)为“另一种服务”(YAssS),这是云计算首次亮相后出现的众多功能之一。亚马逊并不是唯一的FaaS提供商。其他还包括Google Cloud Functions,Microsoft Azure Functions,IBM OpenWhisk开源实现,Iron.io和Webtask。无服务器体系结构适合纳米服务。如果微服务是一个旨在解决相对较小业务能力的过程,则纳米服务将处理相应能力的一小部分。例如,一个微服务可以用一个帐号来执行所有CRUD操作所需的代码,而每个帐号操作都有一个nanoservice:创建,读取,更新和删除。当触发“创建帐户”事件时,相应的nanoservice将作为AWS Lambda函数执行。很少使用术语nanoservice,最喜欢微服务甚至只是服务。有人认为FaaS只是另一个PaaS,但意向媒体工程副总裁Mike Roberts有另一个意见:大多数PaaS应用程序并不是为了满足每个请求的整个应用程序,而FaaS平台正是这样做的。 ...FaaS和PaaS之间的关键操作差异在于缩放。对于大多数PaaS,您仍然需要考虑规模,例如用Heroku你想运行多少个Dynos。 FaaS应用程序是完全透明的。即使您将PaaS应用程序设置为自动扩展,您也不会这样做到个别请求级别(除非您拥有非常特殊的流量配置文件),因此FaaS应用程序在成本方面效率更高。Roberts并没有考虑到每个人都应该抛弃PaaS并开始使用FaaS,他们提到了一些原因:“API网关的工具和成熟度可能是最大的。此外,在PaaS中实施的12因子应用程序可能会使用应用程序内只读缓存进行优化,这不是FaaS功能的选项。自称为高级思想家和Raconteur的Camille Fournier在推特上写道:“如果无服务器的服务将成为像存储过程那样的东西,这个好主意很快就会变成巨大的技术债务。”罗伯茨解决了这个问题,认为FaaS可能是只有无服务器功能只是“包装访问数据库的一小段代码”时,用SPaaS(Stored-Procedures-as-a-Services)代替。但由于FaaS功能可用于许多其他目的,所以比较是无效的。他还指出,与存储过程不同,无服务器功能不需要特定于供应商的语言或框架,

paas 1668 3

作者头像zyw3272017.11.25 18:55 

mysql命令gruop by报错this is incompatible with sql_mode=only_full_group_by

mysql命令gruop by报错this is incompatible with sql_mode=only_full_group_by在mysql 工具 搜索或者插入数据时报下面错误:ERROR1055(42000):Expression#1ofSELECTlistisnotinGROUPBYclauseandcontainsnonaggregatedcolumn'database_tl.emp.id'whichisnotfunctionallydependentoncolumnsinGROUPBYclause;thisisincompatiblewithsql_mode=only_full_group_by原因:看一下group by的语法:select 选取分组中的列+聚合函数 from 表名称 group by 分组的列从语法格式来看,是先有分组,再确定检索的列,检索的列只能在参加分组的列中选。我当前Mysql版本5.7.17,再看一下ONLY_FULL_GROUP_BY的意思是:对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中,也就是说查出来的列必须在group by后面出现否则就会报错,或者这个字段出现在聚合函数里面。查看mysql版本命令:select version();查看sql_model参数命令:SELECT@@GLOBAL.sql_mode; SELECT@@SESSION.sql_mode;发现:ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION第一项默认开启ONLY_FULL_GROUP_BY,解决方法:1.只选择出现在group by后面的列,或者给列增加聚合函数;(不推荐)2.命令行输入:set @@GLOBAL.sql_mode='';set sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';默认关掉ONLY_FULL_GROUP_BY!这个时候 在用工具select 一下SELECT@@sql_mode; SELECT@@GLOBAL.sql_mode;发现已经不存在ONLY_FULL_GROUP_BY ,感觉已经OK。但是如果你重启Mysql服务的话,发现ONLY_FULL_GROUP_BY还是会存在的想要彻底解决这个问题 就得去改my.ini 配置(如果你们mysql 没有这个文件,就把my-default.ini 改成my.ini,我这个版本就是没有my.ini配置问题)在 [mysqld]和[mysql]下添加SETsql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_C

mysql 1216 2

作者头像zyw3272017.11.25 17:58 

linux用户登录记录日志和相关查看命令汇总

Linux用户登录信息放在三个文件中:1  /var/run/utmp:记录当前正在登录系统的用户信息,默认由who和w记录当前登录用户的信息,uptime记录系统启动时间;2  /var/log/wtmp:记录当前正在登录和历史登录系统的用户信息,默认由last命令查看;3  /var/log/btmp:记录失败的登录尝试信息,默认由lastb命令查看。这三个文件都是二进制数据文件,并且三个文件结构完全相同,是由/usr/include/bits/utmp.h文件定义了这三个文件的结构体。默认情况下文件的日志信息会通过logrotate日志管理工具定期清理。logrotate的配置文件是/etc/logrotate.conf,此处是logrotate的缺省设置,通常不需要对它进行修改。日志文件的轮循压缩等设置存放在独立的配置文件中,它(们)放在/etc/logrotate.d/目录下,它会覆盖缺省设置。如果不想记录相关信息,则可以直接将相关文件删除即可。如果系统不存在该文件,则需要在此路径touch一个文件就可以继续记录相关信息了。此外:如果想禁用who命令,则只需要将utmp的可读权限去掉就行,这样非root用户就不能用此命令了;如果是btmp文件,手工创建的话注意权限必须为600,否则不能正确写入信息。# 2 相关命令介绍好了,下面开始介绍查看这三个日志文件的命令了。分别是lastlog、last、lastb、ac、who、w、users、utmpdump。其中last、lastb、who、utmpdump可以通过指定参数而查看三个中的任意一个文件。## 2.1 lastlog:列出所有用户最近登录的信息,或者指定用户的最近登录信息。lastlog引用的是/var/log/lastlog文件中的信息,包括login-name、port、last login timelzx-clone1:/var/log#lastlog UsernamePortLatest rootpts/1WedOct1914:37:46+08002016 bin**Neverloggedin** daemon**Neverloggedin** gdm**Neverloggedin** admin**Neverloggedin** lzxpts/3WedOct1915:15:24+08002016## 2.2 last列出当前和曾经登入系统的用户信息,它默认读取的是/var/log/wtmp文件的信息。输出的内容包括:用户名、终端位置、登录源信息、开始时间、结束时间、持续时间。注意最后一行输出的是wtmp文件起始记录的时间。当然也可以通过last -f参数指定读取文件,可以是/var/log/btmp、/var/run/utmp[root@CLMUGR-APP-D-01log]#last rootpts/010.200.108.92TueOct1815:04stillloggedin rootpts/110.200.108.92WedOct1217:02stillloggedin rootpts/010.200.108.92WedOct1209:20-16:58(07:38) rootpts/010.200.108.92SatOct810:40-14:45(04:05) rootpts/010.200.108.92WedAug3110:52-08:

linux 1109 3

作者头像zyw3272017.11.25 17:46 

Linux强制踢出用户命令

一、输入w命令查看已登录用户信息[root@KW_S01_192.168.1.106_A ~]# w19:22:31 up 2:11, 3 users, load average: 0.00, 0.00, 0.00USER TTY FROM LOGIN@ IDLE JCPU PCPU WHATroot pts/0 192.168.1.178 18:41 0.00s 0.16s 0.01s wroot pts/1 192.168.1.178 19:22 4.00s 0.14s 0.05s ssh localhostroot pts/2 localhost.locald 19:22 4.00s 0.07s 0.07s -bash二、使用命令pkill -kill -t 用户tty[root@KW_S01_192.168.1.106_A ~]# pkill -kill -t pts/2三、验证操作是否成功[root@KW_S01_192.168.1.106_A ~]# w19:24:25 up 2:12, 2 users, load average: 0.00, 0.00, 0.00USER TTY FROM LOGIN@ IDLE JCPU PCPU WHATroot pts/0 192.168.1.178 18:41 0.00s 0.18s 0.02s wroot pts/1 192.168.1.178 19:22 1:58 0.09s 0.09s -bash登陆用户信息说明:USER:显示登陆用户帐号名。用户重复登陆,该帐号也会重复出现。TTY:用户登陆所用的终端。FROM:显示用户在何处登陆系统。LOGIN@:是LOGIN AT的意思,表示登陆进入系统的时间。IDLE:用户空闲时间,从用户上一次任务结束后,开会记时。JCPU:一终端代号来区分,表示在摸段时间内,所有与该终端相关的进程任务所耗费的CPU时间。PCPU:指WHAT域的任务执行后耗费的CPU时间。WHAT:表示当前执行的任务。

linux 1023 1

作者头像zyw3272017.11.25 17:37 

修改ssh服务的默认端口

1、查看当前服务端口 一般ssh服务的默认端口为22端口,查看监听的端口用netstat,如下:[root@ansiblemoniter ~]# netstat -tnlp |grep sshtcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 9085/sshdtcp 0 0 :::22 :::* LISTEN 9085/sshd2、修改默认端口2.1 修改配置文件 利用修改配置文件的方法来修改ssh服务的默认端口,ssh配置文件路径如下:[root@ansiblemoniter ~]# ls -l /etc/ssh/sshd_config-rw------- 1 root root 3883 Dec 30 02:29 /etc/ssh/sshd_config 未修改之前如下: 修改之后如下: 在开始进行修改之前,开放两个端口,一个是默认的22端口,一个是需要修改的端口,防止修改端口失败,需要进机房进行操作2.2 重启ssh服务 重启ssh服务,使修改后的配置文件生效2.3 查看监听端口 查看监听端口如上所示,可以看到22端口和5309端口都进行了监听2.4 测试修改端口ssh连接 在修改完成之后,必须进行测试连接,如果测试通过,那么就将22端口禁用,如果测试不能通过,那么必须检查防火墙,selinux问题2.5 禁用22端口 修改配置文件/etc/ssh/sshd_config文件,将Port 22去掉即可,如下所示: 重启ssh服务: 查看监听端口:2.6 修改/etc/services文件未修改之前的配置文件如下:修改之后的配置文件如下: 修改此文件的目的主要是便于以后端口的查找,在/etc/services文件中,是标准端口配置文件,在有的服务启动的时候,对应的端口也是从此文件中查找,在使用这些端口的时候,最好是不重复,否则会导致有些服务无法启动。 你用xinet.d来启动服务时他就会在/etc/services找相应的端口来启动。

ssh 981 1

a6bfb44cbd5549740eb36647f36ef83a