hexo生成的静态页本地打开css引用不到?

<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要这样生成?有没有什么办法可以生成下面那个样子的?

阅读 10.5k
5 个回答

题主难道是直接在 public 目录打开的?

这就跟 / 的作用有关系了,/ 开头指代的是当前根目录。
假如你的文件位置是 D:/Hexo/public/index.html,那这个 / 就是表示 D 盘根目录。所以CSS最终访问的是 D:/css/style.css
而当你把 public 下的内容上传后,这个根目录就是服务器的根目录,也就是当前目录,自然可以访问到了。

一般本地都是用 hexo s 开启本地服务器预览的。

再说下不加 / 会导致的问题。
首先,在你博客主页不会有任何问题,因为不加 / 就表示当前目录。而如果是博客子页面,比如文章页的网址为 www.blog.com/20160530/hello.html,这个页面里没有 / 那问题就来了,这个路径下能找到 css 文件吗?

新手上路,请多包涵

在配置文件中图片描述

这个要看你的主题里面怎么写的。你找找你用的主题里面,看 <head></head> 部分的代码组织,那里可以看到如何修改 css 引用文件的地址。

举个例子,像 Random 这个主题,就是在这里定义 css 的引用路径,layout/head.swig43 行

{{ 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

这就可以改好了。

url_for函数。

必须放在 source 目录下面

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏