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?
1302 次
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 に答える