私は html5boiler プレート ant ビルド スクリプトを使用しており、これを既存のプラットフォームに統合しようとしています。ここでは、すべての css および js ファイルが絶対パスを使用して含まれています。例えば:
<!-- scripts concatenated and minified via build script -->
<script type="text/javascript" src="/static/js/common.js"></script>
<script type="text/javascript" src="/static/js/overlay.js"></script>
<script type="text/javascript" src="/static/js/init.js"></script>
<script type="text/javascript" src="/static/js/base.js"></script>
<!-- end scripts -->
ただし、ビルド スクリプトを実行すると、ディレクトリが存在しないことがわかります。これは、ファイルの検索に相対パスを使用していないためです。先頭の / を外すと、プロジェクトのソース フォルダーに関連しているため、動作させることができます。先頭のスラッシュを取り除かずにこれを機能させる方法はありますか? アイデアは、既存のプロジェクトを取得して、コメントを追加する以外に変更を加えずに機能させることです。
更新 次の ANT コードは、html5boiler プレート ant build.xml からのものです。基本的に、file.root.page 内の私のパスは、上記の i static のように絶対です。したがって、scripts.ordered プロパティはファイル名を絶対パスで出力しています。したがって、concat コマンドに到達すると、script.toconcat の入力が取得され、/static で始まる絶対パスになります。これらの絶対パスの前にパスを追加する必要があるため、/content/test.war/static/js/common.js が作成されました。
したがって、基本的には、 /content/test.war などのパスを変数 scripts.toconcat の前に追加しようとしています。変数 scripts.toconcat は、上で定義した絶対パスのリストです。
<filelist id="file.root" dir="${dir.source}/../${dir.cssjsfileloc}" files="${file.root.page}"/>
<echo message="Concatenating Main JS scripts based on ${file.root.page}..."/>
<apply executable="java" parallel="false"
outputproperty="scripts.ordered">
<arg value="-cp"/>
<arg value="${dir.build.tools}"/>
<arg value="ScriptsToConcat"/>
<first>
<filelist refid="file.root"/>
</first>
</apply>
<filelist id="scripts.toconcat" dir="./${dir.intermediateroot}/" files="${scripts.ordered}">
</filelist>
<!-- overwrite=no here means not to overwrite if the target is newer than the sources -->
<concat destfile="./${dir.intermediate}/${dir.js}/scripts-concat.min.js" overwrite="no">
<filelist refid="scripts.toconcat" />
</concat>
ありがとう