我一直在试图加载我的octopress网站(基于jekyll)到我的本地网络。没有服务器,我只想在共享文件夹上本地可用。
每次我将其部署到本地文件夹时,css和js和背景图像链接都将被破坏。
可用的选项,如rsync,github和heroku都需要ssh和密码。这可以在这里找到:http://octopress.org/docs/deploying/
有没有耙子选项可以帮助这个?
解决了:
Kikito,非常感谢您的指导。
我刚刚实现了它,并分派了一个git仓库。但是有一个问题。我已经使用这种技术在DropBox Public,本地目录和Web主机上托管同一个站点。我必须添加一个额外的/和斜杠加起来,因为链接被点击。这是repo和dropBox链接:
https://github.com/originalsurfmex/jekyll-relative-bootstrap
一切都按照你的说法工作,但是我认为,如果你或他人看到布局中的部分和链接,你会有一个更好的主意。
解决方法
自动方式:
对于css / js文件:
- {% assign lvl = page.url | append:'X' | split:'/' | size %}
- {% capture relative %}{% for i in (3..lvl) %}../{% endfor %}{% endcapture %}
- <link href="{{ relative }}css/main.css" rel="stylesheet" />
- <script src="{{ relative }}scripts/jquery.js"></script>
对于其他文件:
在_config.yml集中
- url: http://www.yourdomain.com
- <link rel="canonical" href="{{ site.url }}{{ page.url }}" />
- var relative = null;
- if (location.protocol==='file:') {
- relative = Array($('link[rel="canonical"]').attr('href').match(/\//g).length-2).join('../');
- if (relative == '') relative = './';
- }
- function to_relative(link,index) {
- if (!relative) return link;
- var hash = link ? link.match(/#.*$/) : null;
- if (hash) link = link.replace(/#.*$/,'');
- return link?(link.replace(/^\//,relative)+(index?(link.substr(-1)=='/'?'index.html':''):'')+(hash?hash[0]:'')):null;
- }
- $(function(){
- if (relative) {
- $('a').attr('href',function(a,b){return to_relative(b,true);});
- $('img').attr('src',false);});
- }
- });
对于其他方面,使用jQuery来操纵它们。