hexo部署到gitee无法正常显示怎么办
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并设置地址为绝对路径,这样就可以避免跨域请求的问题。例如,“/file/upload/202310/22/4h4kpvvlzz0.png”。但是使用CDN需要付费,如果经济条件不允许,可以考虑下面的方案。
- 将所有的静态资源上传到gitee中的某个仓库中。在gitee中,我们可以创建一个新仓库,然后将所有的静态资源上传到这个仓库中。我们需要将仓库中的访问地址添加到Hexo配置文件中,这样就可以避免跨域请求的问题。例如,“/file/upload/202310/22/ryfvzuxdxpe.ico”。这种方式的缺点是需要手动上传文件,麻烦,但是在博客内容不发生改变的情况下,可以使用缓存功能,减少请求次数。
- 使用Travis CI。这个方案需要你具备一定的编程经验。Travis CI是一个集成测试和部署的工具,可以自动构建、测试、和部署代码到持续集成服务器中,这样就可以实现自动部署博客了。具体的操作可以参考官方文档,这个方案比较复杂,但是效果非常好。
总结起来,无法正常显示Hexo博客的问题是由于gitee平台对跨域请求做了限制,可以通过使用CDN、将静态文件上传到gitee中的某个仓库中、和使用Travis CI来解决这个问题。每种方案都有其优缺点,可以根据自己的实际情况来选择适合自己的方案。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341