ジキルを使用してgithubページのサイトを設定しようとしています。私のアプローチは、_site
の内容をリポジトリのルートにアップロードし、相対URLを介して資産を参照することです。GitHubページ - CSSの相対URLの問題
は、以下のフォルダを呼び出している、関連するコードの一部抜粋です:
CSS:
@font-face {
font-family: supermario;
src: url('/dpd/font/fontfamily.ttf');
}
.scenery {
position: absolute;
background:url('/img/image1.gif');
}
.image2 {
position: absolute;
bottom: 0;
width: 100%;
height: 40px;
background-image:url('/img/image2.png');
}
.icon2 {
background-image:url('/img/icon2.png');
width: 30px;
height: 30px;
position: absolute;
bottom: $floorheight;
background-position-x: 350px;
z-index: 5;
transform: scaleX(-1);
}
HTML:
<link rel="stylesheet" href="build/css/styles.css">
<script src="dpd/jquery-3.2.1.min.js"></script>
<script src="build/js/app.js"></script>
私のHTML要素が正しいURL構造をロードしています。 404エラーを生成しているように
myusername.github.io/img/icon1.png
myusername.github.io/img/icon2.png
そして、:私のCSSのURLが正しくロードされていない
myusername.github.io/repository-name/build/js/app.js
myusername.github.io/repository-name/build/css/styles.css
...彼らは次のようになります。以下のようになります。
編集:私はジキルの実行に役立ちますgulptaskを持っている - それはそうのようになります。
//server + file watching
gulp.task('serve', function() {
browserSync.init({
server: "_site"
});
gulp.watch("dev/scss/*.scss", ['styles', 'jekyll']);
gulp.watch('dev/js/*.js', ['scripts', 'jekyll']);
gulp.watch('_includes/*.html', ['jekyll']).on('change', browserSync.reload);
gulp.watch('_site').on('change', browserSync.reload);
});
gulp.task('jekyll', function(gulpCallBack){
var spawn = require('child_process').spawn;
// After build: cleanup HTML
var jekyll = spawn('jekyll', ['build'], {stdio: 'inherit'});
jekyll.on('exit', function(code) {
gulpCallBack(code === 0 ? null : 'ERROR: Jekyll process exited with code: '+code);
});
});
私は解決策を改善しませんでしたいくつか試してみました:
- 相対パスに変更を
../
- 、それがどのように見えるので、スラッシュを削除:ルートディレクトリに
img
フォルダを移動background-image:url('/img/icon.png');
- プロジェクトの内容
私には余計な手順がありますか?誰にもこれをより良くするための提案はありますか? _config.yml
で
<link rel="stylesheet" href="{{'/build/css/styles.css'|absolute_url}}">
<script src="{{'/dpd/jquery-3.2.1.min.js'|absolute_url}}"></script>
<script src="{{ '/build/js/app.js'|absolute_url}}"></script>
その後:あなたはmyusername.github.io/repository-name/..
のようなURLを持って考えると
ビルドディレクトリのimgディレクトリはありますか? その場合、このような相対URLは間違いなく移動するはずです。 background-image:url( '../ img/image2.png'); –
あなたはおそらく#2に最も近づいてきました。実際には、CSSで絶対URLを使用しています(スラッシュで始まる場合)。それはここでいくつかの他の答えがそれをクリアしているように見えます。 –
CSSで相対URLを使用する場合、URLはCSSファイル自体に相対的です。 (https://stackoverflow.com/questions/940451/を参照)。あなたの例では、最初のスラッシュのみを削除した場合、 'img/icon.png'は' repo-name/build/css/img/icon 'を参照します。例えば、あなたのCSSが 'repo-name/build/css/styles.css'にあると仮定して、pngを実行します。 –