2017-01-23 4 views
2

私は_dataフォルダ内にsettings.ymlを作成しました。これには私のベースルールも入っています:/run-and-rollGitHubはJeykllのサイトをホストしました。 CSS内の背景画像は表示されませんか?

私は資産の前に{{ site.data.settings.baseurl }}を挿入しました。 cssファイルは、htmlで定義されている画像とともに読み込まれています。しかし、CSSで要求された背景画像は表示されません。 {{ site.baseurl }}

https://granttransition.github.io/run-and-roll/

+0

恐らく 'baseurl'に末尾のスラッシュを追加しますか? –

+0

トレーニングスラッシュは既に{{site.data.settings.baseurl}}の後にあります。だから、私のヘッダーの背景イメージには、background-image:url({{site.data.settings.baseurl}}/assets/img/runner.jpg);があります。何らかの理由でGitHubが/ run-and-roll URLをどこにでも出力しているようですが、{{site.data.settings.baseurl}}/assets/img /として出力するCSSをバーに入れます。 –

+0

なぜ追加しなかったのですか? '_config.yml'の' baseurl'ですか?あなたは現在の行動の例を挙げることができますか? – marcanuy

答えて

0

使用して、データファイルに移動、ジキル大会で良いアイデアではありません。

あなたのCSSの観点からは、runner.jpgへのパスは常に../assets/img/runner.jpgになります。 baseurlを使用する必要はありません。

+0

ライブサイトでもですか? –

+0

'../ assets/img/runner.jpg'は決して動かないあなたのスタイルシートに対する相対パスです。 –

+0

アドバイスに続いて、まだ背景画像を表示していませんか? https://granttransition.github.io/run-and-roll/。 https://www.dropbox.com/s/pbtoaz630fbmllf/Screenshot%202017-01-24%2015.22.21.png?dl=0 –

1

https://jekyllrb.com/docs/configuration/に表示されるすべての設定変数は、そこに保持する意味があります。

通常、テンプレートは{{site.baseurl}}を使用してアセットのようなURLを生成するときにベースURLをプリペンドします。そのため、手動で別の場所から設定すると、デフォルトでは使用されません。

あなたが読んだのは、設定と構成を別々にするのがよい方法です。これは、ジキルの組み込み変数とはまったく関係がなく、データファイルに置くのがよい方法です。簡単には、あなたのジキルインスタンスを維持し、更新することができます公式ドキュメントsuggests、できるだけあなたの_conf.ymlとしてクリア:

ビルトインジキルから使用可能な変数に加えて、あなたは その独自のカスタムデータを指定することができます液体 テンプレートシステムを介してアクセスできます。

Jekyllは _dataディレクトリにあるYAML、JSON、およびCSVファイルからデータを読み込むことをサポートしています。 CSVファイルにはヘッダー行が含まれている必要があります。

この強力な機能により、テンプレート の繰り返しを避けることができ、_config.ymlを変更せずにサイト固有のオプションを設定できます。

プラグイン/テーマは、データファイルを利用して、設定変数 を設定することもできます。

1

TL; DR

他の回答:)で提案されているように_config.ymlbaseurlを置くだけで

B/C

あなたがしている場合site.urlまたはsite.baseurlが指定されていない、GitHubのページでジキルを使用している場合は、 CNAMEまたはconfig.ymlではproduction buildです。その後、彼らはgithub page generator

によって自動的に設定されますgithub page generatorコード・ソースからの説明

:ジキルため

# Set `site.url` and `site.baseurl` if unset and in production mode. 
    def set_url_and_baseurl_fallbacks! 
    return unless Jekyll.env == "production" 

    repo = drop.send(:repository) 
    site.config["url"] ||= repo.url_without_path 
    if site.config["baseurl"].to_s.empty? && !["", "/"].include?(repo.baseurl) 
     site.config["baseurl"] = repo.baseurl 
    end 
    end 

デフォルトのビルド環境は、developmentです。その間、あなたのサイトをローカルで作業します。すべてのものは、あなたが期待したとおりに動作します。 _config.yml

以外の場所にbaseurlを置くが、githubのページ側では、ウェブサイトは、このコマンドを使用して構築された場合でも:

JEKYLL_ENV=production jekyll build 

site.urlsite.baseurlが上書きされます。 を使用して(''または'/')のような値に設定されている場合、ナビゲーションの問題が発生しないことがあります。 cssとjsのバットassets pathは期待どおりに動作しません。

baseurl_config.ymlに入れて、レイアウトとページをリファクタリングしてください。あなたは大丈夫でしょう。

サイドノート:@David回答に記載されているように、ウェブサイト設定をするのはジキルの規約です。 _config.ymlにありますが、他の場所に配置したい場合は可能です。意志通りにproductionのためにそれらを宣言することを確かめてください。

も参照してください。Clearing Up Confusion Around baseurl -- Again

UPDATE

をしてもgithubのプロジェクトrepoにウェブサイトを移動した後:/<user-name>.github.io/<repo-name>の代わりに、ユーザー(または組織)レポ:/<user-name>.github.io。次のように設定する必要があります。

site.baseurl: '' 

または削除する必要があります。あなたがメインリポジトリからあなたのウェブサイトを提供しているからです(above refence

関連する問題