3

私の Hakyll サイトには、ページにリンクされたスタイルシートがあります。

<link rel="stylesheet" type="text/css" href="/css/my.css">

この CSS には@font-face、フォント ファイルにリンクするディレクティブが含まれています。

@font-face {
 font-family: "Bla";
 src: url("/data/bla.ttf") format("truetype");
}

問題は、フォントの URL をページ内のタグrelativizeUrlsに移動しても、相対化されないことです。<script>この問題を解決するには?

4

3 に答える 3

1

私はもっ​​と簡単な方法で行きました。このコードを使用して、現在のアイテムに相対的なルート パスを取得しました。

rootPath :: Compiler String
rootPath = (toSiteRoot . fromJust) <$> (getUnderlying >>= getRoute)

そして、Context定数フィールドを作成しました:

fontCtx = do
    root <- rootPath
    return $ constField "fontRoot" root

最後に@font-face、CSS ファイルから句を HTML ファイルに移動し、そこでフィールドを使用しました。

    <style type="text/css">
        @font-face {
          ...
          src: url("$fontRoot$/data/bla.ttf") format("truetype");
        }
    </style>

このコンテキスト フィールドは、Javascript コードのパス文字列など、他の場所でも非常に役立つことがわかりました。これは私も使用しています。

于 2016-09-12T10:04:51.117 に答える