发布于 07月22, 2016

nginx配置url重写

url重写是指通过配置conf文件,以让网站的url中达到某种状态时则定向/跳转到某个规则,比如常见的伪静态、301重定向、浏览器定向等

rewrite

语法

在配置文件的server块中写,如:

server {
    rewrite 规则 定向路径 重写类型;
}
  • 规则:可以是字符串或者正则来表示想匹配的目标url
  • 定向路径:表示匹配到规则后要定向的路径,如果规则里有正则,则可以使用$index来表示正则里的捕获分组
  • 重写类型:
    • last :相当于Apache里德(L)标记,表示完成rewrite,浏览器地址栏URL地址不变
    • break;本条规则匹配完成后,终止匹配,不再匹配后面的规则,浏览器地址栏URL地址不变
    • redirect:返回302临时重定向,浏览器地址会显示跳转后的URL地址
    • permanent:返回301永久重定向,浏览器地址栏会显示跳转后的URL地址

阅读全文 »

发布于 06月25, 2016

网站架构-从无到有

注意:该文件比较长,写的是从没有项目起到项目上线的一些事,从大的方面约束规范到环境的配置、代码的模式、静态文件管理都有些概括,希望对你有帮助~

环境和域名

项目的开发基本是开发->测试->线上的流程,那么项目开发前,约定好环境和域名,首先我们已知如下条件:

  • 使用git版本控制,前、后端分2个仓库(repository),会有master线上develop开发release发布3大分支
  • 后端使用php语言,Yii2
  • 项目域名fe.com
  • 项目静态域名cdn-fe.com,线上启用CDN服务
  • 分本地开发、联调测试、线上3个环境,每天环境都能独立的运行,当然前端fe可以不装数据库,但后端环境得有一套
  • 后端代码目录:/home/wwwroot/fe.com/
  • 前端代码目录:/home/wwwroot/cdn-fe.com/
  • 全是本地开发,fe本地有静态服务开发,rd本地有后端服务+数据库服务

阅读全文 »

发布于 06月22, 2016

好搜移动端页面研究

首先声明,我并不是好搜员工,研究源码只是爱好,并没有别的意思,下面的代码是在pc-chrome模拟手机访问时截取的m.so.com,并自己适当的修改了些变量名(因为源码被混淆、压缩了),只是学习用,如果有冒犯贵司之处,还请 【联系我】 ,我会第一时间删除~

阅读全文 »

发布于 06月14, 2016

编写单元测试

之前在 06-10#邯郸技术交流会 分享的时候重点说过测试相关,这里就重点说下单元测试吧。

为什么要写单元测试

  1. 让代码更健壮
  2. 让bug的机率降低/提高代码稳定性
  3. 对代码的升级、迭代很有帮助
  4. 要比“说”你代码牛B来的实在
  5. 是一个比较有趣的事情

理论来说一些公用库必须具有完整的单元测试~

情深深雨蒙蒙,你写个测试行不行?

阅读全文 »

发布于 04月13, 2016

聊聊前端

此博文的所有观点都是我自己的看法,可能很不对~

最近(近半年)发现很多人跟我说想学前端、前端吃香不、前端挣钱不等之类的问题,在这个夜黑风高的夜晚我来说说前端吧~

阅读全文 »

发布于 03月30, 2016

使用node和nginx部署网站服务

在之前的asp时代我们网站通常是使用windows的iis来架设,后来php时代,一般是启动php的服务,然后使用http server服务来做转发(反向代理),然而如今使用node时候如何处理呢?

众所周知,一个域名的直接访问是解析ip的80端口(浏览器会默认隐藏80端口),然而每一个node的进程又只能占用一个端口,那么当一个服务器(是指承载这些网站的机器,可能是windows、linux或者mac)上搭建的网站超过一个时,端口不够用乍破?那么就使用http server来代理吧~

阅读全文 »

发布于 02月21, 2016

前端交互是什么

声明:今天有个朋友@柔情似水问我面试的时候前端交互是什么?,然后我感觉这不是一两句话能说的清就写下这个博文,只是我个人的看法,可能很不对,欢迎讨论~

首先一说到交互这个词,我猛然想起两大块,一是数据交互,二是体验上的交互(是指用户在页面操作中的交互,如动画、小提示、习惯等),那么针对这些简单的描述下吧。

阅读全文 »

发布于 02月17, 2016

基于zepto使用Promise

Promise 对象用于延迟(deferred) 计算和异步(asynchronous ) 计算.

注意,由于在真实工作环境(wise aladdin)中不能使用真正原生的Promise,我们以zepto的Deferred代替,这里就是简单说下使用Deferred的场景

阅读全文 »