我的Hexo博客,欢迎访问,很酷。科莫的博客?Preface我的Hexo版本是3.9.0,Next主题版本是7.5版本,是去掉了自定义文件的神奇跨时代版本。我的服务器不是github-page,而是阿里云的ECS服务器。如何将Hexo从github-page迁移到阿里云的ECS服务器,请看这篇文章:博客部署到阿里云服务器。当然,起初我认为这个版本很容易搞砸。本来想改样式的,但是不懂CSS。网上有很多关于更改自定义文件的文章。文案文案可以改成好看的样式。这没关系,只要移动除非它全部失败。事实上,并非如此。纠结了Next半天,发现可以在themes/next/source/css/main.styl中添加最后一句:@import"_custom/custom";??然后在themes/next/source/css目录下新建一个_custom文件夹,然后进去新建一个custom.styl文件,把网上收集的Next主题文件全部粘贴进去,就可以预览这些了新添加的样式本地起来。当然,你可能不需要这么麻烦的操作,你甚至可以将你想要的css样式代码添加到themes/next/source/css文件夹下的任意一个.styl文件中,在本地预览时就会生效。我想原因是主题调用的文件主要来自themes/next/source/css/main.styl,而这个文件里面全是import语句,也就是说导入了所有的css文件,也就意味着最后生成的整体main.css文件只是将所有css子文件中的语句按顺序排列,所以你添加哪个文件只是改变了最后一个main.css语句的顺序,但它提供的效果仍然有效。不过为了以后修改方便,建议找对应的位置添加。1??问题陈述前言中也提到了“本地预览生效”,意思是可以自己定义css样式,也可以复制粘贴网上的内容,但是有个很头疼的问题,就是,大多数情况下,你只能在本地预览成功,但是一旦部署到服务器上,要么就完全失效,要么就怪怪的。有时即使删除整个/css文件夹,你也会发现部署后网站的风格一点都没有变。?随后在部署页面和本地预览页面进行F12调试,一一对比,终于找到了不同之处。本地预览时debug页面的/css文件下的文件名和hexog在/public文件夹下生成的main.css一样,但是7.3.0部署页面上文件名变成了main.css?v=,额外的?v=7.3.0令人费解。看main.css里面的文件内容和我电脑里/public/css/main.css里面的内容一模一样,但是main.css?v=7.3.0少了几百行。我以为是hexodeploy命令部署不全,少了点东西,但是阿里云上的server文件夹里面的内容和我本地是一样的。而当我将main.css的内容复制到main.css?v=7.3.0时,我要部署的页面终于和我本地预览一样了,虽然刷新后就消失了,毕竟是网页调试.那么问题就很明确了,就是这个main.css?v=7.3.0并没有放在server端,调用的源头不清楚,也改不了,所以我们得找一个使已部署页面加载主要的方法。css而不是main.css?v=7.3.0。2??问题解决了,有一行语句是这样的:v=7.3.0是从这里的?v={{version}}来的,所以把这里的?v={{version}}删掉就可以了。然后hexoclean&&hexog&&hexod,查看部署页面,样式完整完美!问题解决了。???3??一些缺点这种方法可以完美的解决问题本身,永远不会出现本地预览和部署端不一样的问题,但是会有副作用。当我以为我终于可以肆无忌惮的快乐玩耍时,我又发现了新的问题。也就是我又修改了css样式,也就是在/_custom/custom文件中添加了一些样式,然后hexod发现样式没有变化。然后调试发现问题,main.css文件没有变化。想一想,猜测这个原因应该和main.css?v=7.3.0的问题一样,它本身是不能改变的,即使你hexod了一个新的css文件,它本身也不会改变。解决方法是将themes/next/layout/_partials/head/head.swig中的
