精华内容
下载资源
问答
  • 这样很不利于SEO那么怎么才能处理掉category这目录呢? 下面求不黑找了集中常见的方法来分享给大家! 第:修改固定链接设置,去掉分类链接前缀category 登录你的Wordpress后台,打开固定链接/永久链接设置...

    刚刚接触Wordpress的小伙伴们可能被搞的无从下手,比如说添加目录后然后把目录添加到导航菜单链接会出/category/你的目录url。这样很不利于SEO那么怎么才能处理掉category这一层目录呢?

    下面求不黑找了集中常见的方法来分享给大家!

    第一:修改固定链接设置,去掉分类链接前缀category

    登录你的Wordpress后台,打开固定链接/永久链接设置项。在“可选设置”里的“分类地址前缀”里输入半角字符: “.”;保存即可去掉分类前缀category。
    在这里插入图片描述

    优点:设置简单,老少皆宜。适用于初建成的博客,或刚打算使用固定链接 /永久链接的博客。用不着修改代码,升级之时没有顾虑;用不着插件,不会增加运行负担。

    缺点:原链接无法打开,出现404错误。被搜索引擎收录良好,或分类链接有较多外链链入的博客,可要万分小心了。不要因为操作简单、省时省力而损失了大量外链及权重。

    开启重写后,这样设置会导致分类和标签下找不到对应文章,所以最好还是只将其缩短。

    第二:借助Wordpress插件,去掉分类前缀category

    求不黑推荐两款插件

    1、WP No Category Base:作者iDope,是为去除固定链接中分类链接里的category而开发出来的一款wordpress插件,被下载近5万次。安装启用此插件后,对原来的分类地址做了301跳转,对SEO优化有好处,把降权风险降到最低。

    2、No category parents(此插件目前已经三年未更新不适合新版本):作者milardovich,上面插件的升级版,不仅能去掉分类链接的前缀category,还能去掉父分类 parent-category。例如能把“/category/parent-category/my-category/”换成“/my-category/”形式。

    直接在插件里面搜索安装即可
    在这里插入图片描述

    优点:安装简单,老少皆宜。无论是初建成的博客,还是正打算使用固定链接 /永久链接的博客,还是被搜索引擎收录良好的博客。用不着修改代码,升级之时没有顾虑。使用 301跳转,把原链接进行跳转。最大程度防止搜索引擎降权,防止原链接打不开。

    不足:插件或许会造成空间负担。这里不说是缺点,就是因为,造成的“空间负担”微乎其微,不应该是缺点。比较在意的就不用,无所谓推荐使用。

    第三:修改Wordpress函数,去掉分类前缀category

    1、找到你Wordpress博客wp-includes文件夹下的category-template.php。

    2、打开此文件,搜索(get_category_link()函数里)的以下代码:

    $catlink = $wp_rewrite->get_category_permastruct();

    在其后,另起一行加入:

    $catlink = str_replace(‘/category’ , ” , $catlink);代码作用是,使用字符串替换函数,把获取分类链接函数的分类链接里的/category替换掉。达到去掉分类链接前缀/category的目的。

    3、保存上传到服务器即可。

    优点:仅加入一段代码,性能影响忽略不计。适用于对代码稍熟悉的博客。

    缺点:修改代码,博客升级还要修改。且原地址仍可以访问。或会造成谷歌网站管理员工具里提到的,重复的标题。

    原文

    展开全文
  • 当时我service层的所有服务返回的数据都放在了redis缓存里面,比如查询所在的目录category,或者查询产品product信息,以及订单信息order,或者订单信息orderitem等等。 那么这些不同数据的key和value的设计...

    我之前自己做了一个仿天猫的网站设计,有一次面试的时候就被问道:你的redis里面的key是怎么设置的,value里面的内容又是什么?因为时间隔了比较久,忘得差不多了,今天刚好回忆并总结一下,以防下次被问到。

    当时我在service层的所有服务返回的数据都放在了redis缓存里面,比如查询所在的目录category,或者查询产品product信息,以及订单信息order,或者订单项信息orderitem等等。

    那么这些不同数据的key和value的设计原则都很类似,我这里举几个例子。


    1.给缓存添加分类

    在我的项目里面,我把redis不同部分的数据进行了分类,比如category相关的数据都放在catrgory类别下,只需要在service层的开始,加上一个注释:@CacheConfig(cacheNames="categories")即可:

     这样,关于catrgory的所有的key和value都在这个分类下,并且redis里面会创建一个sorted set类型的对象,key为categories~keys,里面所有的scores都是0,member是这个类别下的所有的key名称,这样下面执行@CacheEvict(allEntries=true),就只会删除这个类别下的所有key,别的类别下的key不会删除,比如categories~keys


    2、category缓存的key以及value的设置

    【1】redis的key是自定义的,比如对于category这个service,list方法返回所有的category数据,他的key设置为:categories-all,这对应的是service层的这个函数:

    这个函数返回的是list,里面放了很多的category的对象,因此为了保存这些对象,我设置了使用json将这些对象进行序列化来保存(至于如何让对象进行json序列化,只需要进行一下配置即可)。因此查看redis里面这个key的value的内容如下:

    可以从上面看出来,这些变量的类是ArrayList,然后里面每个对象的类为pojo下面的Category类。这个Category类就是一个pojo,即对应着数据库里面的一个表,如果我们查看数据库里面的Category表的话,内容如下(只列出一部分):

     

    可以看出来,83,平板是对应的,后面还有很多被挡住了。

     

    【2】再比如如果单独查询某一个类别的所有信息,比如类别id为79的所有信息,那他的key设置为:categories-one-79。然后他的value就是这个category对象的json序列化字符串,如下,里面一开头表示这个里面的对象的类的权限定名

     对应的数据库的内容为:

     他的对应的程序service层为:

    【3】再比如category里面,有时候我们需要查询对应的分页信息,也就是第多少页里面包含的所有的类别信息,这里我设置的key就是:category -页偏移量 -页大小,代码如下:

     


    3、product缓存的key以及value

    如果查询某个产品,我们如果是通过类别来查询这个类别下的所有产品,他会返回一个List<Product>类型的数据,我把这个key设置为products-cid-类别的id,代码如下:

    redis里面的数据情况是:

     

    如果是查询某个产品对应的信息,他返回的就是一个Product类变量,我设置的它对应的key为:products-one-产品id,代码如下:

    此时redis里面的数据为:

    对应的数据库内容为:

     可以看出来,里面的id为148,cid为48,等等信息都是对应的。

    因此,了解了上面关于redis里面的key和value是具体如何设置的,下次再被问道,就在也不用慌了!!

    展开全文
  • 本文转自:CocoaPods一个Objective-C第三方库的管理利器 目录(?...介绍那怎么用呢先安装CocoaPods现在pod安装好了怎么使用呢 ...搜索初始化添加一个库... 一些经常用到的库,新的项目用是,你又得手工的Add到

    本文转自:CocoaPods一个Objective-C第三方库的管理利器

    介绍:

    开发应用的时候第三方的库是不可缺少的,能提高开发的效率。 一些经常用到的库,在新的项目里用是,你又得手工的Add到项目里,用的到库多起来了,就不方便管理了。发现CocoaPods这个软件,可以帮你管理Xcode里的第三方的库,很方便。

    那怎么用呢?先安装CocoaPods。

    1、CocoaPods是跑在Ruby的软件,安装可能需要几分钟,安装命名:

    sudo gem install cocoapods  

    如果安装不了,可用用淘宝的Ruby镜像来访问cocoapods,依次打入以下命令,再执行上述操作

    $ gem sources --remove https://rubygems.org/
    //等有反应之后再敲入以下命令
    $ gem sources -a http://ruby.taobao.org/

    2、如果想为每个第三方库生成文档,那运行

    brew install appledoc  这步是可选的。

    安装完成后提示:


    如果你的Ruby环境不够新的话,可能要更新一下:

    gem update --system

    现在pod安装好了,怎么使用呢?

    搜索

    先试试搜索功能,你需要什么库,可以用pod来搜索,比如要用JSONKit这个库:

    pod search是搜索命名,后面写上库名称就行了。

    pod search JSONKit

    搜索出来:


    初始化

    好了, 在终端shell中cd 来到你要管理的项目,运行:pod install 

    运行完之后你会发现你的项目目录下是这样的:


    多了*.xcworkspace  pod等文件。这是pod生成的项目管理文件,打开LibDemo.xcworkspace 项目文件,在Xcode里看到是这样的目录结构:


    添加一个库:

     vim Podfile 打开文件,把刚才搜索到的JSONkit添加进去。

    platform :ios
    pod 'JSONKit'

    保存退出。

    运行:pod update 

    这样是就把JSONKit 库下载并和本地项目关联起来了,这是Xcode提示你更新项目


    点Revert。

    这时你看项目pod部分,多了JSONKit库.好了,第三方库就这么神奇的加进来。

    头文件路径

    那试试看使用JONSKit.h,在ViewController.m里引用下。找不到头文件,怎么办?还没设置头文件的目录,在项目的Target的里设置一下:

    如下图所示,输入${SRCROOT}  后面选上recursive。


    在引用头文件:


    完美。

    其他的第三方库。

    Podfile文件中添加后pod update下就ok。

    [html] view plaincopy
    1. platform :ios,      '5.0'  
    2. pod 'JSONKit'  
    3. pod 'AFNetworking'  
    4. pod 'MBProgressHUD'  
    5. pod 'Reachability'  
    6. pod 'Nimbus/Core'  

    比如我引用了上面这些库,Nimbus太大了,我只需要 Core,也可以这么写。

    CocoaPods还有好多高级功能,可以根据需求来使用。

    参考:https://github.com/CocoaPods/CocoaPods/wiki

    另一篇cocoapods的博文:http://code4app.com/article/cocoapods-install-usage



    展开全文
  • django学习系列之模板系统篇(二)

    千次阅读 2014-02-12 21:06:34
    这篇文章讲怎么在视图中使用模板。...在项目中找到settings.py文件,找到TEMPLATE_DIRS,在这一项里面添加你的模板目录位置。 Linux系统下有两种添加方法: 1.使用绝对路径。比如: TEMPLATE_DIRS = ( '/

    这篇文章讲怎么在视图中使用模板。只会说没用,用起来才是真的。

    这里必须提到一个新概念了:模板目录。在模板目录里面,你存放了一堆模板文件。

    怎么让系统找到模板目录呢?靠设置文件。

    在项目中找到settings.py文件,找到TEMPLATE_DIRS,在这一项里面添加你的模板目录位置。

    Linux系统下有两种添加方法:

    1.使用绝对路径。比如:

    TEMPLATE_DIRS = (
    '/home/django/mysite/templates', #结尾要有逗号
    )

    2.使用内部变量__file__,改变量被自动设置为代码所在的python模块文件名。比如:

    TEMPLATE_DIRS = (
    os.path.join(os.path.dirname(__file__),'templates').replace(' \\','/'),
    )

    settings.py所在目录下查找templates目录。

    先看一个例子。

    fromdjango.template.loader import get_template
    fromdjango.template import Context
    from django.httpimport HttpResponse
    import datetime
    
    def current_datetime(request):
        now = datetime.datetime.now()
        t = get_template('current_datetime.html')
        html = t.render(Context({'current_date': now}))
        return HttpResponse(html)

    前面也用过这个例子,不解释了。这是一种用法,使用HttpResponse()方法。

    但是应答http请求的操作太常用了,django提供了一个快捷的方法,位于django.shortcuts模块中名为render_to_response()的方法。

    使用render_to_response()方法,上面的代码可以简化为:

    from django.httpimport render_to_response
    import datetime
    
    def current_datetime(request):
        now = datetime.datetime.now()
        return render_to_response('current_datetime.html', {'current_date': now})

    render_to_response()的第一个参数必须是要使用的模板名称。如果要给定第二个参数,那么该参数必须是为该模板创建Context时所使用的字典。如果不提供第二个参数,render_to_response()使用一个空字典。

    写过web的人都知道html文档的内容实在多,要是能够重用,那就太好了。

    重用的第一种方法是使用{%include %}标签,第二种方法就是模板继承

    下面重点将第二种方法,第一种方法参考标签的用法。

    模板继承,从本质上来说就是先构造一个基础框架模板,而后在其子模板中对它所包含站点公用部分和定义块进行重载。跟类继承的概念差不多。

    直接上示例:

    假设一个文件base.html

    <!DOCTYPEHTML>
    <htmllang="en">
    <head>
    <title>{%block title %}{% endblock %}</title>
    </head>
    <body>
    <h1>Myhelpful timestamp site</h1>
    {% blockcontent %}{% endblock %}
    {% blockfooter %}
    <hr>
    <p>Thanksfor visiting my site.</p>
    {% endblock%}
    </body>
    </html>

    我们使用了一个新的标签:{%block %},它告诉模板引擎,子模板可以重载这些部分。

    继承会用到一个{%extend %}标签,继承后的文件current_datetime.html,请看:

    {% extends"base.html" %}
    
    {% block title%}The current time{% endblock %}
    {% block content%}
    
    <p>It isnow {{ current_date }}.</p>
    {% endblock %}

    工作方式:在加载current_datetime.html模板时,模板引擎发现了{%extend %}标签,意识到该模板是一个子模板,所以立即装载其父模板,即本例中的base.html

    此时,模板引擎注意到base.html中的三个{%block %}标签,并用子模板的内容替换这些block。因此,引擎将会使用我们在{% block title %}中定义的标题,对{% block content %}也一样。

    注意由于子模板并没有定义footer块,模板系统将使用在父模板中定义的值。


    展开全文
  • 对于一个刚学习一项开源技术和框架工具带来的帮助是有多大了~ 提供插件 <a href="https://chrome.google.com/webstore/detail/gitter-helper-for-github/apahfabdianobklhejoojcpmoegaolpi">Gitter Helper</a> 可以...
  • 个好用的数据库类

    2008-05-14 08:36:06
    <br>三、实例练习 <br>下面就通过上面的例子一起来看一下这个类到底怎么样,为了方便,我建了个简单的access数据库test.mdb,这个数据库中也只有一张表emp,它有三个字段。下面的工程的InitInstance ()...
  • asp.net母版页如何使用

    2021-01-02 19:02:23
    计算机专业的很多同学临近毕业了,才着急怎么个毕业设计来进行答辩,很短的时间是不可能完成的,今天就先跟着小编的步伐,学习asp.net母版页的使用,快速掌握这个实用技巧,相信一定大家的毕业设计过程中发挥...
  • GDAL读取GeoTif的基本操作

    万次阅读 2015-02-26 10:26:46
    近期开发个遥感地图的云采样...//包含目录目录配置好,链接器->输入->附加依赖项里添加“gdal_i.lib” //把bin里的dll文件放入程序运行目录下 #include "gdal_priv.h" //tif文件读取 std::string name = “H:
  • C++使用vs2015进行字符串md5加密

    万次阅读 2019-10-10 11:45:42
    有些时候,我们需要使用C++进行字符串的md5加密,这就需要使用openssl中的md5库了,我的另外篇博客中讲解了如何创建OpenSSL动态库,这里就不讲解了,不知道...链接器-输入-附加依赖项里添加lib文件的名称 libc...
  • <div><h1>10min手写个简易的内存监控系统:snail: :mushroom: 欢迎大家关注我的 微博和知乎</a></p> 本文需要有一定的python和前端基础,如果没基础的,请关注我后续的基础教程系列博客:snail: :...
  • 那么现在尝试最后添加一列叫做‘最终成绩’,且最终成绩的计算准则为:将考勤、作业、期末三分别以权重0.22, 0.18, 0.6 来计算并相加,且保存到该csv文件中,那么应该怎么做? 对于这个问题,尝试使用python...
  • oracle备份还原工具 全

    2013-12-27 16:39:33
    “只导入”,做这工作时,需要将 dmp文件放在 d 盘,目录为D:\dbExp\secmsExp , 该目录下全是 dmp 文件 4. 自动D盘创建备份文件夹,目录为E:\DataBackup\secmsBackup,其中DataBackup自动 创建,...
  • 主程序目录里,找到 Setting.ini 这是 EditPlus 存放语法的文件 查找后缀为“.stx”、“acp”的文本内容,或者查找带有驱动器符号的行,比如 Syntax file=C:\Program Files\EditPlus 2\cpp.stx 那么,就把”C:\...
  • NSIS安装包制作教程详细版

    热门讨论 2008-10-04 00:47:23
    结束页面添加运行程序选项 NSIS的botton二选如何实现? NSIS灵活应用用逻辑库 NSIS调用inf安装驱动后的卸载问题 NSIS的组件互斥代码 NSIS中如何禁止个组件组的父的点击事件 关于打破 NSIS 的 8192 ...
  • 公式的编号略有不同,插入公式后,将公式单独放在一个段落,版式为“嵌入式”(Word默认),光标放在公式之后,不要(注意是“不要”)选中公式,“插入”菜单选“题注”,由于没有选中项目,所以“位置”一项为...
  • 2、注册表中找到并打开HKEY_CLASSES_ROOT\txtfile子键,该子键的shell子键中添加一个“我的文本应用程序”子键,并将该子键的默认键值数据设为“用我的文本程序打开”,“用我的文本程序打开”将作为新添加...
  • Editplus 3[1].0

    2011-04-02 10:45:21
    主程序目录里,找到 Setting.ini 这是 EditPlus 存放语法的文件 查找后缀为“.stx”、“acp”的文本内容,或者查找带有驱动器符号的行,比如 Syntax file=C:\Program Files\EditPlus 2\cpp.stx 那么,就把”C:\...
  • 主程序目录里,找到 Setting.ini 这是 EditPlus 存放语法的文件 查找后缀为“.stx”、“acp”的文本内容,或者查找带有驱动器符号的行,比如 Syntax file=C:\Program Files\EditPlus 2\cpp.stx 那么,就把”C:\...
  • EditPlus.rar +GCC

    2012-02-17 23:12:16
    主程序目录里,找到 Setting.ini 这是 EditPlus 存放语法的文件 查找后缀为“.stx”、“acp”的文本内容,或者查找带有驱动器符号的行,比如 Syntax file=C:\Program Files\EditPlus 2\cpp.stx 那么,就把”C:\...
  • 78.用MFC写了个控件,如何个县城发事件? 79.关于DIADOG背景图象 80.如何显示随光标移动的提示窗口 81.怎么用VC++5.0来编写图像打印程序,我的程序是基于对话框的 82.请问怎样象Winzip一样,给Win95自己的...
  • VC++常用功能实例

    2010-01-25 23:28:46
    58、如何给系统菜单添加一个菜单 61 59、如何确定顶层菜单所占据的菜单行数 62 60、用户环境中如何确定系统显示元素的颜色 62 问:如何控制窗口框架的最大最小尺寸? 63 问:如何改变窗口框架的颜色? 63 问:如何...
  • 10.我们弹出的槽函数中添加一句: my2.show(); my2 为我们新建对话框类的另一个对象,但是my2 我们还没有定义,所以 widget.h 文件中添加相应代码,如下,先加入头文件,再加入my2 的定义语 句,这里我们将其放...
  • 58、如何给系统菜单添加一个菜单 61 59、如何确定顶层菜单所占据的菜单行数 62 60、用户环境中如何确定系统显示元素的颜色 62 问:如何控制窗口框架的最大最小尺寸? 63 问:如何改变窗口框架的颜色? 63 问:如何...
  • 棋牌运营过程中,没有机器人开始是很难运行的,没有人气,那么,网狐荣耀版棋牌游戏怎么添加机器人呢?下面简单说明 加机器人首先要有一些机器人的名字,这些名字可以自己搜集,也可以用网上别人搜集的,比如Q-Q名...
  • 我只想告诉大家 里面添加一个启动 c:\grldr "你随便写只要你愿意能明白选择这个可以引导你启动到我的这四个系统就行" -------- 例如 [boot loader] timeout=5 default=multi(0)disk(0)rdisk(0)partition(2)\...
  • 我只想告诉大家 里面添加一个启动 c:\grldr "你随便写只要你愿意能明白选择这个可以引导你启动到我的这四个系统就行" -------- 例如 [boot loader] timeout=5 default=multi(0)disk(0)rdisk(0)partition(2)\...
  • 我只想告诉大家 里面添加一个启动 c:\grldr "你随便写只要你愿意能明白选择这个可以引导你启动到我的这四个系统就行" -------- 例如 [boot loader] timeout=5 default=multi(0)disk(0)rdisk(0)partition(2)\...
  • 我只想告诉大家 里面添加一个启动 c:\grldr "你随便写只要你愿意能明白选择这个可以引导你启动到我的这四个系统就行" -------- 例如 [boot loader] timeout=5 default=multi(0)disk(0)rdisk(0)partition(2)\...
  • php访问sqlserver数据库

    2017-08-06 00:56:28
    放在php5.6.25目录下的ext文件夹下,php.ini的串extension后增加 了extension=php_sqlsrv_56_ts.dll和extension=php_pdo_sqlsrv_56_ts.dll。上述步骤设置完成后重启所有服务或者关闭wampserver后再重启,...
  • 您的 Global.asax.cs 中添加一条 using 语句并指定这个 XML Web service 的地址。  D.您的 Global.asax.cs 中写一个事件处理器导入这个 Xml Web Service 相应的 .wsdl 和 .disco 文件。 26.您要创建一个ASP...

空空如也

空空如也

1 2 3 4 5
收藏数 97
精华内容 38
关键字:

怎么在目录里添加一项