私は Play で小さなアプリケーションを構築しており、すべての CSS および JS インポート (jQuery および main.js ファイル) を保持する「外部」テンプレートを持っています。上部に CSS、下部に JS があり、その間に body タグがあります...かなり基本的なもの:
<html>
<head>
<title>test</title>
<link rel="stylesheet" href="@routes.Assets.at("stylesheets/foundation.css")">
<link rel="stylesheet" href="@routes.Assets.at("stylesheets/main.css")">
<link rel="shortcut icon" type="image/png" href="@routes.Assets.at("images/favicon.png")">
</head>
<body>
@content
</body>
<script src='@routes.Assets.at("javascripts/jquery-1.9.0.min.js")' type="text/javascript"></script>
<script src='@routes.Assets.at("javascripts/index.js")' type="text/javascript"> </script>
</html>
それは結構です。
ただし、ページの内容に基づいて実行する必要があるページ固有の JavaScript 関数があります。したがって、localhost:9000/test にアクセスすると、特定の関数セットを実行する必要があります。localhost:9000/chips にアクセスすると、別の関数セットを実行する必要があります。
スクリプトで現在のページの URL をチェックし、それに基づいて関数を実行することを除いて、実際にはこれを行うためのきちんとした方法はわかりません...しかし、ルートファイルは現在のページの URL に基づいて既に処理を行っています - 奇妙に思えます似たようなことを2回しなければなりません。
1 つの解決策は、すべてのスクリプトを先頭に置き、HTML でインライン スクリプトを実行することですが、私はそのようなことをするのが嫌いです。