Hexo是一款非常流行的静态博客生成器,它支持多平台部署,包括GitHub、GitLab、和Coding等,同时也支持部署到国内的码云(gitee)平台。然而,有一些Hexo用户在将博客部署到gitee时发现,无法正常显示博客内容,这个问题该如何解决呢?
首先,我们需要明确一点,这个问题并不是由Hexo本身造成的,而是由于gitee平台对跨域请求做了限制。当你在使用Hexo将博客部署到gitee平台时,它会生成一些静态文件(例如HTML、CSS、JS等),这些文件中的图片、字体、和其他静态资源路径都是相对路径,例如“../images/test.png”。当你的博客通过gitee访问时,gitee会将这些静态文件缓存起来,并将缓存的内容提供给用户访问,但是当用户需要访问其中的图片、字体、和其他静态资源时,它会和相对路径所在的域名(例如“example.com”)进行跨域请求,这时候问题就出现了,gitee平台对跨域请求做了限制,导致了无法正常显示博客内容。
那么,该如何解决这个问题呢?以下是一些可能的解决方案:
- 使用CDN。使用CDN可以解决路径相对的问题。你可以将所有的静态资源上传到CDN并设置地址为绝对路径,这样就可以避免跨域请求的问题。例如,“https://cdn.example.com/images/test.png”。但是使用CDN需要付费,如果经济条件不允许,可以考虑下面的方案。
- 将所有的静态资源上传到gitee中的某个仓库中。在gitee中,我们可以创建一个新仓库,然后将所有的静态资源上传到这个仓库中。我们需要将仓库中的访问地址添加到Hexo配置文件中,这样就可以避免跨域请求的问题。例如,“https://gitee.com/username/static/raw/master/images/test.png”。这种方式的缺点是需要手动上传文件,麻烦,但是在博客内容不发生改变的情况下,可以使用缓存功能,减少请求次数。
- 使用Travis CI。这个方案需要你具备一定的编程经验。Travis CI是一个集成测试和部署的工具,可以自动构建、测试、和部署代码到持续集成服务器中,这样就可以实现自动部署博客了。具体的操作可以参考官方文档,这个方案比较复杂,但是效果非常好。
总结起来,无法正常显示Hexo博客的问题是由于gitee平台对跨域请求做了限制,可以通过使用CDN、将静态文件上传到gitee中的某个仓库中、和使用Travis CI来解决这个问题。每种方案都有其优缺点,可以根据自己的实际情况来选择适合自己的方案。
原文来自:www.php.cn
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容