解决部署在vps上的jekyll静态博客中的url被替换为http://localhost:4000

59次阅读
没有评论

共计 873 个字符,预计需要花费 3 分钟才能阅读完成。

背景

生成的静态博客页面源码中的 url 被替换为 localhost 是很偶然发现的,最开始是一个如下的

<link rel="canonical" href="http://localhost:4000/2018/12/09/solve-jekyll-generated-html-replaced-with-localhost-url/">

link 标签中的 url 出现这种情况,搜了一下 link canonical 结果显示跟搜索引擎有点关联,因为我比较重视 SEO 就一直绞尽脑汁想解决这个问题,后来在用 git diff 命令的时候发现了更多被替换的 url 如下图:解决部署在 vps 上的 jekyll 静态博客中的 url 被替换为 http://localhost:4000

原因

其实原因就在于执行过 jekyll serve 命令后,jekyll 会先 build 一下,其此时 build 的时候会将所有的 url 的开头自动替换为 http://localhost:4000,另外jekyll serve 命令在运行的过程中 Auto-regeneration 自动生成默认是开启的,只 > 要有文件变动,自动生成的 html 中的 url 也会自动替换

解决方法

其实很简单,要么 control+ c 停止 jekyll serve 命令运行,要么不要变动文件,只需要再新建一个终端页面 cd 到你的 jekyll 项目根目录下(注意一定要是根目录,否则会在你运行的目录下面又多出来一个 _site 文件夹哦!),手动执行一下 jekyll build命令即可将 url 里面 http://localhost:4000 替换为你的_config.yml 配置文件中 url 参数后面的网址,比如我的配置是url: "https://www.sharpgan.com"

万恶之源

我把 .gitignore 里面的_site 给删除掉了,其实_site 文件夹下面生成的静态 html 是不应该 push 到仓库里面的,主要是我用的 vps 只有 512MB 的小运存,还同时充当番茄服务器,同时也不想再装 ruby 环境在 vps 上面 build 站点,其实正确的姿势就是应该在 vps 上 build 站点,最好是搞个简单的 CI+CD 工作流的,奈何这样子估计要升级 vps,囊中羞涩先不折腾这一套东西了。

正文完
 
sharp097
版权声明:本站原创文章,由 sharp097 2018-12-09发表,共计873字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)