如<link rel="stylesheet" href="/css/style.css" media="screen" type="text/css">
改成这样<link rel="stylesheet" href="css/style.css" media="screen" type="text/css">
本地就通过浏览器可以直接打开预览了,为什么hexo要这样生成?有没有什么办法可以生成下面那个样子的?
如<link rel="stylesheet" href="/css/style.css" media="screen" type="text/css">
改成这样<link rel="stylesheet" href="css/style.css" media="screen" type="text/css">
本地就通过浏览器可以直接打开预览了,为什么hexo要这样生成?有没有什么办法可以生成下面那个样子的?
这个要看你的主题里面怎么写的。你找找你用的主题里面,看 <head></head>
部分的代码组织,那里可以看到如何修改 css 引用文件的地址。
举个例子,像 Random 这个主题,就是在这里定义 css 的引用路径,layout/head.swig
的 43 行:
{{ css(theme.stylesheets) }}
是引用了主题配置文件中的 stylesheets 项,再看 _config.yml
中的 36 行:
stylesheets:
- /css/random.css
- /css/vegas.min.css
- /css/highlight-railscasts.css
- /css/jquery.fancybox.css
- /css/iconfont/iconfont.css
- /css/jquery.fancybox-thumbs.css
- /css/plyr.css
这就可以改好了。
题主难道是直接在 public 目录打开的?
这就跟
/
的作用有关系了,/
开头指代的是当前根目录。假如你的文件位置是
D:/Hexo/public/index.html
,那这个/
就是表示 D 盘根目录。所以CSS最终访问的是D:/css/style.css
。而当你把 public 下的内容上传后,这个根目录就是服务器的根目录,也就是当前目录,自然可以访问到了。
一般本地都是用
hexo s
开启本地服务器预览的。再说下不加
/
会导致的问题。首先,在你博客主页不会有任何问题,因为不加
/
就表示当前目录。而如果是博客子页面,比如文章页的网址为www.blog.com/20160530/hello.html
,这个页面里没有/
那问题就来了,这个路径下能找到 css 文件吗?