ヘッダーとフッターによって汚染されないように、CSS と JavaScript の両方に名前を付ける必要があります。
そこには多くの名前空間パターンがあります..しかし、私はいくつかを提案させてください:
css:インポートするすべてのページに対して..次のような jQuery スクリプトを実行できます。
jQuery(document).ready(function() {
jQuery('body').attr('id','importedPagei');
}
次に、css をインポートするときに、body#importedPagei
呼び出しているすべての css に属性を追加するビルド スクリプトを作成する必要があります。
つまり、これはビルド スクリプトを実行する前のインポート ページの css のサンプルです。
.style1 {
color:red
}
jQueryスクリプトを実行した後:
body#importedPagei .style1 {
color:red
}
つまり、前に..ヘッダーテンプレートに次のクラスがあったとしましょう:
//header.css
h1 {
color: red;
}
インポートしたファイルには
//importedFile.css
h1 {
color:blue;
}
古いソリューションの最終的な結果は、テンプレート ヘッダー スタイルをオーバーライドします。
//old final outcome
h1 {
color:blue;
}
ただし、上記の提案されたソリューションを使用すると、(前述のように)次のようになります。
//importedFile.css
body#importedPagei h1 {
color: red;
}
そして、jQuery を使用して、importedFile.html の body ノードに id 属性を付けたので、html は次のようになります。
<body id="importedFile">
..
<h1>hello world</h1>
..
</body>
したがって、この場合.. css カスケード ルールを使用します.. インポートしたファイルの css セレクターは、テンプレートのものよりも強力です.. したがって、適用される最終的なスタイルは次のようになります。color: red
javascript:
ビルド スクリプトを使用して、特定のページの特定の javascript ファイルを選択的にインポートすることもできます。
別のクリーンな方法は、js.node モジュールを使用することです..javascript の問題は、すべてがグローバル名前空間にあることです.使用できる名前間隔パターンがいくつかあります..しかし、node.js は組み込みの非常にクリーンなソリューションを提供しましたそれのための。そのため、最終的なコードにすべての JavaScript を含めることができますが、node.js がそれを区分化します。それはすべて、この問題を解決するためにどれだけの時間を投資したいかによって異なります