7

I have a local static Javascript file I want to include site-wide. Preferably I want all static Javascript files to be combined into a single file, but I want to manage these files separately. Where should static Javascript files be included in a Yesod project?

4

2 に答える 2

13

より具体的な解決策があります。

  • ''static/js'' に静的 Javascript ファイル用のフォルダーがあります。

  • JavaScript 用のより具体的なウィジェット コマンドがあります: addScript

  • すべての静的ファイルに対して、静的サブサイトは「::Route Static」シンボルを生成し、非識別子文字「/-」を置き換えます。「static/」からのファイルパスに「_」を使用します。

サンプル:

import Yesod.Widget (addScript)

-- given a file path of static/js/my-script.js

addScript $ StaticR js_my_script_js

プロジェクトが部分的にコンパイルされている場合、次のようなエラーが発生することがあります。

Foundation.hs:...: Not in scope: `js_my_script_js'

その後、どちらか

  • unix staticFiles を呼び出してルート シンボルを生成する StaticFiles.hs モジュールに触れます。

  • または、ビルドをクリーンアップして再構築すると、消えます。

乾杯!

それについては、私の/(あなたの)ウィキペディアの記事でも読むことができます。自由に修正して完成させてください。

于 2012-11-05T17:29:36.737 に答える
2

関数で を使用addWidgetしてdefaultLayout、単一のファイルに結合されるウィジェットに追加できます。

例えば、

defaultLayout widget = do
    ...
    pc <- widgetToPageContent $ do
        $(widgetFile "mywidget")
        ... other stuff here ...    

    ...

ここで、templates ディレクトリに呼び出されたファイルを配置するだけmywidget.juliusで、すべてのページに自動的に含まれます。

于 2012-11-04T11:26:12.943 に答える