为什么我的hexo d的时候win7提示没有权限访问

如何搭建一个独立博客——简明Github Pages与Hexo教程 - 简书
下载简书移动应用
写了503826字,被3003人关注,获得了10811个喜欢
如何搭建一个独立博客——简明Github Pages与Hexo教程
摘要:这是一篇很详尽的独立博客搭建教程,里面介绍了域名注册、DNS设置、github和Hexo设置等过程,这是我写得最长的一篇教程。我想将我搭建独立博客的过程在一篇文章中尽可能详细地写出来,希望能给后来者一个明确的指引,同时用这篇教程开篇,正式开始我的第八大洲之旅。
作为一个技术小白,没有技术基础,看网上的教程也云里雾里,看程序员的教程相当不容易,稍微有些细节描述得不清楚自己就要绕弯路去找答案(善用搜索引擎),所以,在自己的博客搭建完成之后,我决定要将我搭建博客的过程全记录下来,以供后期和我一样的小白参考(是的,我坚信还有很多一样和我一样的人),我会尽可能详细的整理这个教程,其中的资料可能会摘录到其他人的教程,我会在后面列出了参考资料,感谢这些作者们。
为什么要开博客?可以看看我的这篇
也可以看看这篇
以下以我的博客:为例,教大家如何搭建一个独立博客。
为什么要搭建一个独立博客?
独立的才是自己的。
小白进入门槛
1、非常折腾,需要耐心;
2、也需要一定的学习能力和钻研精神;
3、懂一些网页基础知识,不懂也重要,参看第二和第三条;
小白白请看
日更新:发现一个更简单的方法: byisnowfy
按此教程操作即可。
为什么选择GitHub Pages?
很多人用wordpress,你为什么要用github pages来搭建?
1、github pages有300M免费空间,资料自己管理,保存可靠;
2、学着用github,享受github的便利,上面有很多大牛,眼界会开阔很多;
3、顺便看看github工作原理,最好的团队协作流程;
4、github是趋势;
5、你不觉得一个文科生用github很geek吗?瞬间跻身技术界;
6、就算github被墙了,我可以搬到国内的gitcafe中去。
GitHub Pages是什么?
GitHub Pages本用于介绍托管在GitHub的项目, 不过,由于他的空间免费稳定,用来做搭建一个博客再好不过了。
github Pages可以被认为是用户编写的、托管在github上的静态网页。
只推荐上godaddy购买,安全,而且可以使用支付宝。
教程(截止至日)如下
1、查你想要的域名;
2、查到适合的域名之后选择「continue to Cart」;
3、godaddy附加收费服务,不要管,继续「continue to Cart」;
4、确认购买。修改购买年限,默认是两年,可以修改成1/2/3/5/10年,随自己喜欢。现在godaddy上com每年的默认费用是12.99美元,附加上ICANN的管理费用就是13.17美元。
如果你不是土豪,可以上网搜godaddy的优惠码,一大堆,找一个填进这里,填完之后,一年的费用会变成8.99美元。
说明一下:一般来讲,使用网上的优惠码第一年收费8.99美元,以后每年的收费是10.99美元,不过在网上可以搜到合适的优惠码,可以每年的收费都是8.99美元,记得多测试自行鉴别。
如图,我买了五年的费用就是45.85美元,随后点击「Proceed to Checkout」
5、结算。登录或注册界面,填完必要的信息之后,选择用支付宝结算。
如果以上的教程如果不够清晰,可以参照这一份。
6、检查。结算后,重新登录,去「My Account」,域名已经显示在你的账户了。
7、补充一些注意事项:
输入优惠码没有优惠或者优惠幅度较低,请清除浏览器cookies再尝试;
如果没有支付宝支付选项,有可能是使用的优惠码不支持支付宝,请重新清除浏览器cookies再尝试;
注册时用户填写信息时一定要输入正确的邮箱名字,否则修改十分麻烦。
买完域名之后一定要记得去自己的邮箱查看激活邮件,否则域名激活不了。
安装准备软件
依次下载安装。
怎么打开Git?
1、开始菜单Git Bash。
2、鼠标右键打开Git Bash。
注册GitHub
注册你的username和邮箱,邮箱十分重要,GitHub上很多通知都是通过邮箱的。
注册过程比较简单,详细也可以看:
by pchou(推荐)
配置和使用Github
以下教程主要参考beiyuu的写成。
配置SSH keys
我们如何让本地git项目与远程的github建立联系呢?用SSH keys。
检查SSH keys的设置
首先我们需要检查你电脑上现有的ssh key:
$ cd ~/. ssh 检查本机的ssh密钥
如果提示:No such file or directory 说明你是第一次使用git。
生成新的SSH Key:
$ ssh-keygen -t rsa -C "邮件地址@"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/your_user_directory/.ssh/id_rsa):&回车就好&
注意1: 此处的邮箱地址,你可以输入自己的邮箱地址;注意2: 此处的「-C」的是大写的「C」
然后系统会要你输入密码:
Enter passphrase (empty for no passphrase):&输入加密串&
Enter same passphrase again:&再次输入加密串&
在回车中会提示你输入一个密码,这个密码会在你提交项目时使用,如果为空的话提交项目时则不用输入。这个设置是防止别人往你的项目里提交内容。
注意:输入密码的时候没有*字样的,你直接输入就可以了。
最后看到这样的界面,就成功设置ssh key了:
添加SSH Key到GitHub
在本机设置SSH Key之后,需要添加到GitHub上,以完成SSH链接的设置。
1、打开本地C:\Documents and Settings\Administrator.ssh\id_rsa.pub文件。此文件里面内容为刚才生成人密钥。如果看不到这个文件,你需要设置显示隐藏文件。准确的复制这个文件的内容,才能保证设置的成功。
2、登陆github系统。点击右上角的 Account Settings---&SSH Public keys ---& add another public keys
3、把你本地生成的密钥复制到里面(key文本框中), 点击 add key 就ok了
可以输入下面的命令,看看设置是否成功,的部分不要修改:
如果是下面的反馈:
The authenticity of host ' (207.97.227.239)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?
不要紧张,输入yes就好,然后会看到:
Hi cnfeat! You've successfully authenticated, but GitHub does not provide shell access.
设置用户信息
现在你已经可以通过SSH链接到GitHub了,还有一些个人信息需要完善的。
Git会根据用户的名字和邮箱来记录提交。GitHub也是用这些信息来做权限的处理,输入下面的代码进行个人信息的设置,把名称和邮箱替换成你自己的,名字必须是你的真名,而不是GitHub的昵称。
$ git config --global user.name "cnfeat"//用户名
$ git config --global user.email
""//填写自己的邮箱
SSH Key配置成功
本机已成功连接到github。
若有问题,请重新设置。常见错误请参考:
使用GitHub Pages建立博客
与GitHub建立好链接之后,就可以方便的使用它提供的Pages服务,GitHub Pages分两种,一种是你的GitHub用户名建立的username.github.io这样的用户&组织页(站),另一种是依附项目的pages。
想建立个人博客是用的第一种,形如cnfeat.github.io这样的可访问的站,每个用户名下面只能建立一个。
github上建立仓库
登录后系统,在github首页,点击页面右下角「New Repository」
填写项目信息:
project name:cnfeat.github.io
description: Writing 1000 Words a Day Changed My Life
注:Github Pages的Repository名字是特定的,比如我Github账号是cnfeat,那么我Github Pages Repository名字就是cnfeat.github.io。
点击「Create Repository」 完成创建。
详细可以看这里:
用Hexo克隆主题
Hexo的作者是,根据,Hexo是一个简单、快速、强大的博客发布工具,支持Markdown格式。
$ npm install -g hexo
在我的电脑中建立一个名字叫「Hexo」的文件夹,然后在此文件夹中右键打开Git Bash。
$ hexo init
Hexo随后会自动在目标文件夹建立网站所需要的所有文件。
现在我们已经搭建起本地的hexo博客了,执行以下命令(在H:\hexo),然后到浏览器输入localhost:4000看看。
复制cnfeat的主题
以下进入复制主题环节,如果那一步出现问题,或者修改后没有显示修改的结果,建议来来一个,再看看,可以解决很多问题。
$ hexo clean
建立了Hexo文件之后就可以复制我的主题了
$ git clone /cnfeat/cnfeat.git themes/jacman
如果不行,可以复制wuchong的修改的主题,我的就是复制他的修改的。
$ git clone /wuchong/jacman.git themes/jacman
或者复制yangjian的
$ git clone /A-limon/pacman.git themes/pacman
启用cnfeat的主题
修改Hexo目录下的config.yml配置文件中的theme属性,将其设置为jacman。同时请设置stylus属性中的compress值为true。
theme: jacman
注意:Hexo有两个config.yml文件,一个在根目录,一个在theme下,此时修改的是在根目录下的。
$ cd themes/jacman
$ git pull
注意:为避免出错,请先备份你的_config.yml 文件后再升级
本地查看调试
$ hexo g #生成
$ hexo s #启动本地服务,进行文章预览调试
或者直接作用组合命令
$ hexo d -g
浏览器输入 文件或者上传文件都可以先用此命令调试,非常好用,尤其是当你想调试出自己想要的主题时。
将独立域名与GitHub Pages的空间绑定
GitHub Pages的设置
方法一:在Repository的根目录下面,新建一个名为CNAME的文本文件,里面写入你要绑定的域名,比如。
方法二:到我的github仓库,点击右下角的「Download ZIP」,下载源文件,解压,找到CNAME文件,用记事本打开,将修改成你的域名,放进Hexo\source目录下,用hexo命令提交上去。
$ hexo d -g
用DNSpod,快,免费,稳定。
注册,添加域名,如下图设置。
其中A的两条记录指向的ip地址是github Pages的提供的ip
192.30.252.153
192.30.252.154
如博客不能登录,有可能是github更改了空间服务的ip地址,记得及时到在查看最新的ip即可
www指定的记录是你在github注册的仓库。
去Godaddy修改DNS地址
更改godaddy的Nameservers为DNSpod的NameServers。
1、点击「My Account」,管理我的域名。
2、点击域名。
3、将godaddy的Nameservers更改成f1g1ns1.dnspod.net和f1g1ns2.dnspod.net
如有不详看可以看
详细也可以看这里:
至此,独立博客就算搭建完成,如需进步一完善请在参看以下文章或博客下留言。
by yangjian
by yangjian
by zippera(推荐)
by zippera(推荐)
进阶篇:Hexo设置
网站搭建完成后,就可以根据自己爱好来对Hexo生成的网站进行设置了,对整站的设置,只要修改项目目录的_config.yml就可以了,这是我的设置,可供参考。
# Hexo Configuration
## Docs: http://hexo.io/docs/configuration.html
## Source: /tommy351/hexo/
# Site #整站的基本信息
title: 1000 words a Day #网站标题
subtitle: Writing 1000 Words a Day Changes My Life #网站副标题
description: 学习总结 思考感悟 知识管理 #网站描述
cnFeat #网站作者,在下方显示
language: zh-CN
## If your site is put in a subdirectory
permalink: :year/:month/:day/:title/
tag_dir: tags
archive_dir: archives
category_dir: categories
code_dir: downloads/code
# Directory
source_dir: source
public_dir: public
new_post_name: :title.md # File name of new posts
default_layout: post
auto_spacing: false # Add spaces between asian characters and western characters
titlecase: false # Transform title into titlecase
external_link: true # Open external links in new tab
max_open_file: 100
multi_thread: true
filename_case: 0
render_drafts: false
post_asset_folder: false
highlight:
enable: true
line_number: true
tab_replace:
# Category & Tag
default_category: uncategorized
category_map:
# Archives
## 2: Enable pagination
## 1: Disable pagination
## 0: Fully Disable
archive: 2
category: 2
## Hexo uses Connect as a server
## You can customize the logger format as defined in
## http://www.senchalabs.org/connect/logger.html
port: 4000
server_ip: 0.0.0.0
logger: false
logger_format:
# Date / Time format
## Hexo uses Moment.js to parse and display date
## You can customize the date format as defined in
## /docs/#/displaying/format/
date_format: YYYY-MM-DD
time_format: H:mm:ss
# Pagination
## Set per_page to 0 to disable pagination
per_page: 15 #每页15篇文章
pagination_dir: page
# Disqus #社会化评论disqus,我使用多说,在主题中配置
disqus_shortname:
# Extensions
## Plugins: /tommy351/hexo/wiki/Plugins
## Themes: /tommy351/hexo/wiki/Themes
theme: jacman
exclude_generator:
- hexo-generator-feed
- hexo-generator-sitemap
path: sitemap.xml
#Feed Atom
type: atom
path: atom.xml
# Markdown
## /chjj/marked
pedantic: false
sanitize: false
tables: true
breaks: true
smartLists: true
smartypants: true
compress: false
# Deployment
## Docs: http://hexo.io/docs/deployment.html
type: github
repository: /cnfeat/cnfeat.github.io.git
branch: master
修改局部页面
页面展现的全部逻辑都在每个主题中控制,源代码在hexo\themes\jacman\中:
├── languages
├── default.yml#默认语言
└── zh-CN.yml
├── layout #布局,根目录下的*.ejs文件是对主页,分页,存档等的控制
├── _partial
#局部的布局,此目录下的*.ejs是对头尾等局部的控制
└── _widget#小挂件的布局,页面下方小挂件的控制
├── source #源码
├── css#css源码
├── _base
#*.styl基础css
├── _partial
#*.styl局部css
├── fonts
├── images #图片
└── style.styl #*.styl引入需要的css源码
├── fancybox
#fancybox效果源码
└── js #javascript源代码
├── _config.yml#主题配置文件
└── README.md
#用GitHub的都知道
发表新文章
用hexo发表新文章
$ hexo n #写文章
其中my new post为文章标题,执行命令后,会在项目\source_posts中生成my new post.md文件,用编辑器打开编写即可。
当然,也可以直接在\source_posts中新建一个md文件,我就是这么做的。
写完后,推送到服务器上,执行
$ hexo g #生成
$ hexo d #部署 # 可与hexo g合并为 hexo d -g
用Hexo发表文章的Markdown语法
使用jacman或pacman主题,建议按此标准语法写:
title: postName #文章页面上的显示名称,可以任意修改,不会出现在URL中
15:30:16 #文章生成时间,一般不改,当然也可以任意修改
categories: example #分类
tags: [tag1,tag2,tag3] #文章标签,可空,多标签请用格式,注意:后面有个空格
description: 附加一段文章摘要,字数最好在140字以内。
为什么我的博客有目录?
我用的是Markdown语法,Markdown语法怎么用?
请看这里:
或者看这里:
常用命令:
hexo new "postName" #新建文章
hexo new page "pageName" #新建页面
hexo generate #生成静态页面至public目录
hexo server #开启预览访问端口(默认端口4000,'ctrl + c'关闭server)
hexo deploy #将.deploy目录部署到GitHub
常用复合命令:
hexo d -g #生成加部署
hexo s -g #预览加部署
hexo n == hexo new
hexo g == hexo generate
hexo s == hexo server
hexo d == hexo deploy
添加sitemap和feed插件
$ npm install hexo-generator-sitemap
$ npm install hexo-generator-feed
修改_config.yml,增加以下内容
# Extensions
- hexo-generator-feed
- hexo-generator-sitemap
#Feed Atom
type: atom
path: atom.xml
path: sitemap.xml
Hexo上传README文件
Github的版本库通常建议同时附上README.md说明文件,但是hexo默认情况下会把所有md文件解析成html文件,所以即使你在线生成了README.md,它也会在你下一次部署时被删去。怎么解决呢?
在执行hexo deploy前把在本地写好的README.md文件复制到.deploy文件夹中,再去执行hexo deploy。
GitHub Pages有提供制作404页面的指引:。
直接在根目录下创建自己的404.html或者404.md就可以。但是自定义404页面仅对绑定顶级域名的项目才起作用,GitHub默认分配的二级域名是不起作用的,使用hexo server在本机调试也是不起作用的。
推荐使用。
推荐使用七牛(10G空间,免费),还可以使用Yupoo(100m免费空间)
参考资料:
[1] by pchou(推荐)
[2]网站优化: by pchou (推荐)
[3] by 阮一峰(推荐)
[4] by zippera(推荐)
[5]by zippera(推荐)
[6] by zippera(推荐)
[7] by ibruce(推荐)
[8] by yangjian(推荐)
[9] by yangjian(推荐)
[10] by wuchong(推荐)
[11]hexo官方写作教程
[12]知乎上的教程:
[13]在GitHub Pages设置独立域名的官方教程:
[14] by beiyuu
[15] by 虫师
[16] by Joanna Wu
[17] by c4fun
[18] by Kesco
[19] by zippera
[20] by kevin chen
[5](推荐)
[6]本地测试页
这里有我的个人简介:
如果你想看到我最新的文章,可以关注我的微信公众号「cnfeat」。
思想也是生产力。
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
被以下专题收入,发现更多相似内容:
欢迎投稿 将实用的知识共享
· 17675人关注
主题是Github上有趣的资源。
当然写Github周边也可以~
本专题的初衷是发现/介绍GitHub上优秀的Repo,欢...
· 13485人关注
搞硬件的被软件的搞死的,搞软件被搞互联网搞死的,搞互联网的呢?目前还没有被搞死,赶紧赶上这个浪潮吧。
· 6933人关注
思想也是生产力。
选择支付方式:之前的WP博客荒废了好久之后终于感觉该做点正事了,所以这几天花了点时间重新弄了下hexo,毕竟是比较符合前端的一个博客框架。比起wp来说,hexo轻量级的多,而且易部署(指速度优化方面),也不需要一个专门的服务器来放置(这个其实是我选择hexo的最终原因。手里虽然有vps,但是因为跑着ss加上国内ping值太高,最终肯定影响国内速度,所以就一直没用来放blog)当然没有后台也就意味着不能随时随地写了就发,这个相对WP来说是弱势,但我感觉还好,毕竟不会常常在外面跑,而且写博客基本都是在电脑前,再不济也可以先把MD文件写完后拷回去发布。
先大概说下我目前blog的部署方式:
github和gitcafe双线路部署,国内线路解析到gitcafe,国外线路解析到github。
自己的域名且未备案(个人博客不建议备案)
域名解析采用dnspod国际版(这个很重要,后面会解释)
使用QQ的自定义域名邮箱
图片采用七牛存储分流
多说评论有一定优化(显UA以及自定义样式等)
然后下面说下我部署过程中遇到的部分问题以及相应的解决方法,由于我自己是Windows 7环境,所以下面很多解决方法可能对*nix党不适用,还请注意。问题的排列按照最基础的node安装,git配置,域名配置,hexo安装,hexo优化美化的顺序来,不过会跳过很多可以直接百度到的内容,所以建议参考以及如果你遇到的问题我这里没提到的话,你可以去这两篇文章搜下解决方案。
npm安装hexo速度过慢由于某些大家都知道的缘故,npm官方源在国内的下载速度极其慢,用官网的npm install hexo-cli -g速度非常感人,所以不推荐这种方式。这里我推荐用淘宝的npm分流——安装过程很简单:npm install -g cnpm --registry=https://registry.npm.taobao.org然后等着装完即可,之后的用法和npm一样,无非是把npm install改成cnpm install,但是速度比之前快了不止一个数量级(不过下文为了方便理解,还是会用默认的npm安装,如果你发现速度不好的话,请自行替换成’cnpm’)
npm安装tips
npm安装的时候有时候会出各种错,而最常见的无非是权限问题、网络连接、包名输错。注意看cmd窗口的报错信息即可。windows党请注意安装的时候将cmd用管理员方式打开(这个是我见过报错最多的),想必npm ERR! Please try running this command again as root/Administrator.各位也不是第一次见了
hexo插件安装的时候先cd到blog根目录,并且安装参数不要带-g。 (即不要全局安装,因为全局安装的时候插件会被装到node的根目录下去,而不是blog目录),hexo的插件需要在blog目录下才能工作
有部分hexo插件用普通的install可能会出现安装完的版本和最新版本有区别,而且怎么也升级不上去的情况(npm update无效),这种情况下请手动指定版本安装:语法:npm install [@&scope&/]&name&@&version&例子:npm install hexo@3.1.1 --save
git多网站ssh部署方案因为是gitcafe和github多线路部署,加上不想每次更新的时候都输帐号密码,所以https传输肯定不行了,只能是ssh传输。不过大部分教程都是单网站部署。所以特地把这个单独拿出来。建议参考gitcafe的这篇部署,一般人看完应该就不需要看我这底下的内容了,我这里步骤都复制以上教程,仅对部分地方加点我个人感觉比较重要的注释git客户端安装的时候可以选择要不要集成到cmd里,有些人可能和我一样没有集成,导致cmd对部分linux下的命令无法解析(比如~)强烈建议以下操作在git bash里进行。不要在cmd里敲git命令!强烈建议以下操作在git bash里进行。不要在cmd里敲git命令!x2强烈建议以下操作在git bash里进行。不要在cmd里敲git命令!x3因为很重要所以说三遍
生成新的 SSH 秘钥记得把以下命令中的 YOUR_ 改为你的 Email 地址ssh-keygen -t rsa -C &YOUR_& -f ~/.ssh/gitcafe
上面最末尾的./ssh/gitcafe中的’gitcafe’即为存在本地的密钥文件名,所以这里是可以自定义的。密钥文件本地存放路径为git的home参数对应路径下的.ssh文件夹,一般是”C:/Users/[username]/.ssh”,如果没有找到的话到git bash里输入$HOME回车然后自行去对应目录查找即可
生成过程中会出现以下信息,按屏幕提示操作,并记得输入 passphrase 口令。
$ ssh-keygen -t rsa -C "YOUR_" -f ~/.ssh/gitcafeGenerating public/private rsa key pair.Enter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved in /c/Users/username/.ssh/gitcafe.Your public key has been saved in /c/Users/username/.ssh/gitcafe.pub.The key fingerprint is:15:81:d2:7a:c6:6c:0f:ec:b0:b6:d4:18:b8:d1:41:48 YOUR_
这将在 ~/.ssh/ 目录下生成 gitcafe 和 gitcafe.pub 文件,记住千万不要把私钥文件 gitcafe 透露给任何人。
passphrase的作用是在密钥传输的过程中加一个解密钥的过程,使得即使密钥文件不小心泄露了,别人也不能直接利用密钥操作你的git帐号,但是由于我个人处理不了ssh-agent自动填充的问题,导致每次更新git都要输passphrase,所以我就没加了,上面的过程里是直接两次回车过去了。
在 SSH 用户配置文件 ~/.ssh/config 中指定对应服务所使用的公秘钥名称(config文件的作用就是告诉git程序在同步认证的时候该使用哪个密钥),如果没有 config 文件的话就新建一个,并输入以下内容:
Host gitcafe.com www.gitcafe.com
IdentityFile ~/.ssh/gitcafe
由于是gitcafe和github双站,所以这里需要再参考上面的语法另外建立一个github的规则(贴下我个人的config文件内容供参考)
Host gitcafe.com *.gitcafe.comIdentityFile ~/.ssh/gitcafeHost github *.github.comIdentityFile ~/.ssh/id_rsaHost gitosc git.oschina.netIdentityFile ~/.ssh/chitanda_osc
添加 gitcafe.pub 中的内容到 GitCafe 网站。 具体请参考中的第三节。
最后测试配置文件是否正常工作
ssh -T git@gitcafe.com
如果连接成功的话,会出现以下信息。
Hi USERNAME! You've successfully authenticated, but GitCafe does not provide shell access.
对于这一步,我的建议是测试命令里再加个-v参数,即
ssh -vT git@gitcafe.com
因为比起”ssh -T”返回的模糊信息相比,”-v”会把整个传输过程中的操作都显示出来,哪一步出错很明显就可以看出来,利于出现问题的调试
完成 测试通过后,你就可以使用独立的一套公秘钥来使用 GitCafe 了。Enjoy!
单域名多线路解析这个解决方法来自的”wy315700”,感谢指点由于网站未备案,所以不能直接放在七牛上(不过如果全部放在七牛,也就失去了双线路的部署意义,所以我个人感觉没必要全站七牛)先科普一些域名相关的小知识:
关于A解析和CNAME解析的区别:
A解析:只能填IP地址,IP地址如果换了的话就需要换解析记录CNAME解析:解析到另一个域名,即使被指向的域名的ip发生变化,也不需要更改解析记录。CNAME优先级高于A解析(至少在DNSPOD是这样的)
域名的nameserver(一般简称”NS”)
nameserver的作用是指定域名的dns解析服务商,比如同时在万网和dnspod给””做了解析,那么哪个解析起作用,就是由NS来决定的。这个在域名注册商的域名管理的里可以更改。NS记录建议只写一个dns解析商的,多NS可能会有问题,可以参考DNSPOD国内版本目前只对国内线路做细分,没有海外线路的选择,所以不推荐,建议用dnspod的
操作流程:
注册dnspod国际帐号
域名服务商那里更改ns记录为dnspod国际版的nameserver,默认为
.dnspod.com..dnspod.com.c.dnspod.com.
在dnspod添加域名解析: 先加一条cname解析国内线路给gitcafe,然后再加一条默认线路的cname给github即可完成双线路解析
github自定义域名需要在项目根目录下添加一个CNAME文件,文件内容为自定义域名。CNAME文件创建完之后扔到blog/source目录下即可 (不能直接扔到public下,理由见下文)gitcafe需要在项目做设置,具体参考
自定义域名邮箱比如i@chitanda.me这种邮箱,目前我用的QQ的,免费,不过我这边会遇到有时候gmail丢件的问题,所以准备看看过段时间转zoho。具体实现很简单,就是域名解析里加条mx记录,不做详细解释,可以参考QQ域名邮箱的帮助(由于通配的mx记录和cname会有语法冲突,有些dns解析商是不支持这种写法的,但是dnspod对语法要求不严格,可以这么写。所以这也是我推荐dnspod的另一个缘故)另外有些域名服务商可能免费送了mail服务,也可以用自带的那个。我由于域名注册在上,它们没送,所以只能另外想办法
hexo部署相关问题首先需要明确一点,public目录下的文件每次’hexo -g’的时候就会被重新生成,所以不要往这里面放任何东西,不然每次都要另外加。而blog/source和blog/theme/[theme-name]/source里的文件是不会被另外处理的,所以有些需要添加在网站根目录的文件(如favicon,谷歌百度的站点认证文件之类的)可以直接扔到这两个文件夹底下,具体选哪个路径要视情况而定
_config.yml编译不通过yml语法极度严格,不通过往往是空格问题,记得所有设置参数属性末尾都要加空格
给网站添加favicon这个和主题有关,默认可能没有,浏览器打开后根据开发者工具里可以看到当前主题下’favicon’的具体路径和要求文件格式,对应做一个就可以了。有时候是’png’但也有时候强制要求’.ico’,可以去d等网站在线制作。
github和gitcafe双线路解析安装hexo-deployer-git的0.0.4版!安装hexo-deployer-git的0.0.4版!安装hexo-deployer-git的0.0.4版!很重要所以说三次。我之前安装的时候默认都是0.0.3版,哪怕其实0.0.4已经出来了。而即使是完全正常的配置,0.0.3版都会提示”fatal: Unable to create ‘XXXXXX/.git/index.lock’: File exists.”(固定版本安装办法可以看上文)查看当前已安装版本:npm ls hexo-deployer-git
附正确配置:deploy:
message: "xxxxx"
github: git@github.com:chitanda/chitanda.github.io.git,master
gitcafe: git@gitcafe.com:chitanda/chitanda.git,gitcafe-pages
跟在”,”后面的是分支名字。注意传输地址应该是ssh格式的,不要弄成了https的地址
多说评论框自定义其实从评论质量来说的话,disqus可能更好点(毕竟是gfw认证网站,相比多说门槛稍微高一点,可以过滤部分人群),不过拖累网页加载速度,所以我就换成多说了。多说样式可以后台自定义css,本站的多说css来自Next.Mist主题制作者的显UA功能需要改多说的js,具体参考单说”Next”主题下改完embed.js后需要做的事情:“Next”主题内嵌多说,所以需要更改主题文件:打开/themes/next/layout/_scripts/comments/duoshuo.swig,更改”embed.js”的文件路径即可。这里我是把js扔到7牛上去了,你也可以直接放到主题里然后更新到gitpage上去。
图片资源利用七牛分流由于git-page自带空间只有300M,看起来博客够用了,但是总觉得憋得慌,对于全图片直接扔上去这种事个人没太大信心,所以决定图片用七牛分流(虽然这样某种意义上对双线路部署的做法产生了消极影响,不过考虑到七牛的CDN速度以及资本主义国家的网速加上未雨绸缪的300M空间,最终还是决定图片传到七牛上去)
我最初的办法是用hexo的一个插件()但是后来发现这个插件效率不高,一开整个hexo的反应都慢了,而且最主要一点是失去了MD文件的通用性,所以最终弃用该方法。另外采用了一个本地同步文件到七牛的插件:,使用很简单,具体可以看文档。
多PC的情况下blog备份问题本来想用网盘的自动备份工具,但是考虑到blog的posts文件夹在写文章时的更新频率,我又放弃了这种做法。另外由于”_config.yml”里有七牛的密钥数据,所以整个blog文件扔到git上也是不可取的。个人建议还是打个包直接另一台电脑解压吧(一般来说拷贝source文件夹,theme文件夹,静态资源文件夹以及站点配置文件即可)。上面删除线内的是我对备份的最初想法,然后实际使用后发现有至少两个缺点:
麻烦,每次另一台电脑上都要从百度云下载更新文件夹手动覆盖
hexo s开启本地服务器状态的时候,会对文件夹进行监视,动态编译生成的文件,而百度云的自动备份会在你每次保存文件的时候都生成一个.cfg文件,导致hexo编译失败,然后就会停止本地服务器解析,又要手动开启一次(写文章的时候随时顺手CTRL+S是个好习惯)
以上两个原因导致了”百度云备份”这个方案被否决,所以最终还是回到了git备份的路子。由于blog全站备份,所以建议放私有仓库,另外根目录下_config.yml尽量不要放上去(有些插件比如我现在在用的”hexo-qiniu-sync”就有七牛的key,所以不建议同步到git上)这里写起来篇幅可能比较长,所以我另外写了一篇文章单独来讲同步:
可以参考。
需要注意的事,不管这台电脑上之前有没有安装过hexo,安装完成后都是不需要hexo init的——这个操作会把config初始化。。直接在复制过来的blog文件里运行hexo的命令即可。不过hexo插件都需要重新安装下。
给github添加README众所周知hexo会把文件夹内的所有md文件解析成html,而github的readme只支持MD格式。(所以想在这里直接插html绕过限制的就只能说残念了)网上之前很多方法,不过都没有说到点子上,因为即使把README.MD文件放到source或者theme对应的source文件夹下,再加上layout:false,hexo还是会把文件解析掉。另外有一种不怎么优雅的解决方法是把'README.MD'的后缀去掉,改成'README',不过这样的话github只能支持部分解析,不会当做一个完整的MD文件来处理,样式上和期待值有差别
正确的解决方法其实很简单:
**把’README.MD’文件的后缀名改成”MDOWN”然后扔到blog/source文件夹下即可,这样hexo不会解析,github也会将其作为MD文件解析
效果可参考我这个
文章添加代码块有注释时的高亮建议对应代码块语法选择相应的注释符号。比如html用&!-- --&,css用/* */,否则可能会出现代码不高亮或者高亮有问题的情况。
MarkDown里 table 的语法MD写法:| 链接 | 结果 | 原因 ||:-----|:---:|----------:||文本内容| **`是`** |同协议同域名同端口||文本内容| **`是`** |同协议同域名同端口||文本内容| **`是`** |同协议同域名同端口|
最上面一行是表格第一列的值。第二行的冒号位置决定表格内文本的对齐方式。有水平居中、水平靠左对齐、水平靠右对齐三种.
切记表格要与上面的文本内容空一行。否则解析不出来
每列的宽度是根据对应列里最长的文本来决定的
输出结果:
同协议同域名同端口
同协议同域名同端口
同协议同域名同端口
以上是之前我之前部署的时候有遇到过的一些问题,后面会视情况再不定时更新下。希望对看到这篇文章的人有所帮助}

我要回帖

更多关于 win7提示没有权限访问 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信