一:ngrok的使用 基于windows

1:为什么要使用ngrok
在微信开发的时候 需要填写与微信服务器相连接的url 这个url必须是外网域名,
也就是说我们需要在这个外网域名对应的ip服务器上做开发,而没办法本地开发调试
所以用ngrok获得一个外网域名 这个外网域名实际访问的是本地主机
这样把此外网域名填入到微信需要的外网url里 就可以在本地开发调试了

2:下载ngrok

3:注册ngrok 得到your auth token 后面的自定义域名必须要有这个token(不是必须的)

4: 打开cmd cd到ngrok.exe在的目录,执行ngrok http 80 就可以给你本机的127.0.0.1:80分配一个外网可以访问的域名 例如http://1f1b1c.ngrok.com
也就是外网访问http://1f1b1c.ngrok.com 就是访问你本机的127.0.0.1:80,当然如果你执行ngrok http 8080 那就是分配一个域名访问127.0.0.1:8080

5: 上面分配的域名是临时的,可能下次开电脑这个域名就变化了,我们需要一个固定的域名映射到本机的80端口
所以先登录 执行ngrok -authtoken xxxxxx http 80 这里填写的是你注册时给你的token,
然后ngrok -subdomain myapp 80 这样后续你通过http://myapp.ngrok.com 就可以一直访问到本机的127.0.0.1:80了
当然如果是想访问的是8080端口 那就把上面的80都改成8080

6:不要关闭cmd窗口 关闭后提供的域名就访问不了了 如果要查看ngrok给你做的中转http信息 访问http://localhost:4040/

7:具体到微信的开发 一定要注意 由于是ngrok做的中转 出于安全考虑通不过微信的默认语句libxml_disable_entity_loader(true);
所以注释掉他 等正式部署到服务器再取消注释

也可以采用:

直接用国内的ngrok服务 http://natapp.cn 简单快捷..

转自https://www.zhihu.com/question/25456655

  1. Ehcache支持持久化到本地磁盘,Guava不可以;
  2. Ehcache有现成的集群解决方案,Guava没有。不过个人感觉比较鸡肋,对JVM级别的缓存来讲太重了;
  3. Ehcache jar包庞大,Guava Cache只是Guava jar包中的工具之一,而且后者远远小于Ehcache;
  4. 两种缓存当缓存过期或者没有命中的时候都可以通过load接口重载数据,调用方式略有不同。两者的主要区别是Ehcache的缓存load的时候,允许用户返回null,而Guava Cache则不允许返回为null,因为Guava Cache是根据value的值是否为null来判断是否需要load,所以不允许返回为null,但是使用的时候可以使用空对象替换。不允许返回null是一个很好的考虑;
  5. Ehcache有内存占用大小统计,Guava Cache没有,需要自己开发。

什么时候适用Ehcache、什么时候适用Guava cache?

首先,两者都是很成熟的JVM级别缓存,所以在绝大多数情况都是可以满足要求的。

适用Ehcache的情况

  1. 需要持久化持久化。使用持久化功能需要,缓存稳定,以免持久化的数据不准确影响结果。
  2. 有集群解决方案。

适用Guava cache的情况
Guava cache说简单点就是一个支持LRU的ConCurrentHashMap,它没有Ehcache那么多的各种特性,只是提供了增、删、改、查、刷新规则和时效规则设定等最基本的元素。做一个jar包中的一个功能之一,Guava cache极度简洁并能满足觉大部分人的要求。

总结
Ehcache有着全面的缓存特性,但是略重。Guava cache有最基本的缓存特性,很轻。大家根据具体情况选择使用。

但凡问题,总是有办法解决的,wordpress 3.1已经加入了对IIS的支持,可以在IIS下自动配置永久链接,相信不久以后也会更好地支持Nginx,在此之前,我们可以用以下方法来解决此问题。

网上流行的办法将apache的重写规则“翻译”为nginx的重写规则,其实大可不必如此复杂,只需要在nginx配置文件nginx.conf的location段的server容器中添加以下代码即可:

location /
{
try_files $uri $uri/ /index.php?q=$uri&$args;
}

重启nginx就可以了。

经测试,证明可行。

找到主题的header.php文件,然后在其标签内加入加一下代码:

详细版:

<?php
$description = '';
$keywords = '';

if (is_home() || is_page()) {
   // 将以下引号中的内容改成你的主页description
   $description = "博客描述";

   // 将以下引号中的内容改成你的主页keywords
   $keywords = "关键词,注意关键词之前以英文逗号隔开";
}
elseif (is_single()) {
   $description1 = get_post_meta($post->ID, "description", true);
   $description2 = str_replace("\n","",mb_strimwidth(strip_tags($post->post_content), 0, 200, "…", 'utf-8'));

   // 填写自定义字段description时显示自定义字段的内容,否则使用文章内容前200字作为描述
   $description = $description1 ? $description1 : $description2;

   // 填写自定义字段keywords时显示自定义字段的内容,否则使用文章tags作为关键词
   $keywords = get_post_meta($post->ID, "keywords", true);
   if($keywords == '') {
      $tags = wp_get_post_tags($post->ID);    
      foreach ($tags as $tag ) {        
         $keywords = $keywords . $tag->name . ", ";    
      }
      $keywords = rtrim($keywords, ', ');
   }
}
elseif (is_category()) {
   // 分类的description可以到后台 - 文章 -分类目录,修改分类的描述
   $description = category_description();
   $keywords = single_cat_title('', false);
}
elseif (is_tag()){
   // 标签的description可以到后台 - 文章 - 标签,修改标签的描述
   $description = tag_description();
   $keywords = single_tag_title('', false);
}
$description = trim(strip_tags($description));
$keywords = trim(strip_tags($keywords));
?>
<meta name="description" content="<?php echo $description; ?>" />
<meta name="keywords" content="<?php echo $keywords; ?>" />

简单版:

<?php if (is_home()){
$description = "博客描述";
$keywords = "关键词,注意关键词之前以英文逗号隔开";
}
elseif(is_single()){
if ($post->post_excerpt) {
$description = $post->post_excerpt;
}
elseif(function_exists('wp_thumbnails_excerpt')){
$description = wp_thumbnails_excerpt($post->post_content, true);
}
else {
$description = $post->post_title;
}
$keywords = "";
$tags = wp_get_post_tags($post->ID);
foreach ($tags as $tag ) {
$keywords = $keywords . "," . $tag->name;
}
}
elseif(is_category()){
$description = category_description();
}
echo "<meta name=\"description\" content=\"$description\" />
<meta name=\"keywords\" content=\"$keywords\" />";
?>

给指定分类定义:

if (is_category('音乐')) {
    $description = '这里填音乐分类的描述';
    $keywords = '这里填音乐分类的关键字,半角逗号隔开';
}
elseif (is_category('电影')) {
    $description = '这里填电影分类的描述';
    $keywords = '这里填电影分类的关键字,半角逗号隔开';
}
elseif (is_category('戏剧')) {
    $description = '这里填戏剧分类的描述';
    $keywords = '这里填戏剧分类的关键字,半角逗号隔开';
}

这样可以给不同页面添加单独的Description 和 Keywords,有利于SEO。

转自:http://www.cnblogs.com/tinyphp/p/5936409.html

Maven多模块项目,适用于一些比较大的项目,通过合理的模块拆分,实现代码的复用,便于维护和管理。尤其是一些开源框架,也是采用多模块的方式,提供插件集成,用户可以根据需要配置指定的模块。

- 阅读剩余部分 -