由于Github上部署hexo应用,自己选择的主题出现css无法载入的问题,而且访问速度较慢,决定先将应用部署到云平台上。简单考察几种平台:之前用过SAE,总觉得钱扣得快,看了看谷歌的云平台,虽然有免费$300的免费试用,觉得不是长久之计,回头再来尝试。最后选择百度云BAE,介绍说不限流量,价格也可以,暂时免费试用。
BAE上发布Hexo应用主要有以下几点:
注册百度云
注册百度云账号,并登录百度开放云官网,选择服务类型。由于Hexo应用最后发布内容为静态网页,基本不需要消耗资源,也可以不依赖数据库,选择应用引擎(BAE)服务即可。
找到BAE服务链接,选择免费试用,一系列信息填写信息,进入控制台界面,创建用于时需要进行实名认证,提交个人信息后,一两天后通过。
创建应用
通过认证后可进行应用部署,根据文档创建应用,选择自定义模板,填写域名和用于名称,该域名为二级域名,可通过该域名访问服务,后期也可以绑定独立域名。应用类型选择nodejs,但后面才知道实际上不需要nodejs服务,所以觉得每个应用类型理论上都可以。代码版本工具选择git。
部署代码
查看创建好的应用,复制应用git仓库源
点击复制,进入自己电脑上的linux系统,我是在ubuntu系统下开发的,其他系统可根据文档进行操作。
进入系统创建临时目录(我的事bae_project)进入目录开始clone刚才复制的仓库地址代码,该过程需要输入用户名与密码,该输入项与百度登陆账号一致。
$ git clone your-registry-path
进入代码目录,有以下文件:
picture 2
接下来,将整个目录下的文件,包括.git目录拷贝到hexo应用目录下的public目录下,由于在部署代码时,仅需要hexo generate
命令生成的public目录下的静态文件,这也是在应用类型选择时可以选择各种类型应用的原因。public目录下的页面资源加载与页面路由并不依赖于nodejs或其他环境。
完成复制后的hexo应用的public目录如下:
picture 3接着修改源码下的app.conf文件,该文件的配置在这里可以看到,Hexo应用只需修改其中的handlers的url的根路由映射到public文件夹的index.html即可。
handlers:
- url : /
script: index.html
接下来
$ git status
$ git add .
$ git commit -m 'some thing'
$ git push origin master
再次输入用户名与密码即可完成代码部署。此外,如果代码占较大空间,需要设置缓存空间大小,以及其他问题的解决参考这里。
经过以上配置和操作,在执行 hexo clean 时需要慎重,清空public目录的同时,复制过来的文件也会被删除。
发布应用
push代码过后,回到控制台,看到应用状态出现 “新版本” 标记,此时可以进行预览或直接快速发布,等待一分钟左右,应用发布成功,之后即可通过之前填写的域名访问应用。
总结
在部署Hexo应用之前的主要问题有:
- Hexo应用应该选择哪种云服务,最终在云主机、云虚拟机、与云应用中选择了最后一种。
- 关于Hexo应用以何种形式部署的问题,一种是在nodejs环境中直接运行hexo程序,另一种只上传public目录下的静态文件。后者更为简单,写文章后生成public目录下的文件后,只要向远端push该目录下代码即可。
- 关于文章中的图片源加载的问题,由于云应用代码空间大小有限,将图片一并上传会占用客观的空间,所以选择在md文件中以连接的方式载入图片。最后选择七牛云的存储服务保存需要的图片,根据说明上传文件并拿到图片链接即可。
网友评论