あなたの要件には、単純な「ベスト」ソリューションはないと思います。私は様々なプロジェクトでさまざまなアプローチを使用しました。それらのすべてが非常にうまくいっています。コードを整理する方が望ましいので、長期間に渡ってコードを簡単に管理できます。これはもちろん個人的なものです。
自分自身がjQueryにCDNを使用したいと思っています.GPGサーバーが5秒以上ダウンしているという(非常に危険な)リスクよりも利点があります。コードの組織について
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/lib/jquery-1.10.2.min.js"></script>')</script>
::私は自分のファイルを管理することを好む とさえ、あなたがロードするためにあなたのコードにフェイルセーブ構築することができ、あなたとlocalYこのようなCDNに到達できない場合にはjQueryのフレームワークを、ホストされていますすべてのアプリケーションの後、用に構築されてテストされ、依存するので - 私はいつも(例えばjQueryと他のライブラリのバージョン番号を含む)アプリケーションスナップショット内のすべての外部ファイルをインクルードします私のアプローチでは、以下の構造
/app
+- /js
| +- /src <- my custom scripts go into "/js/src"
| | +- general-ui.js <- I create/edit this file
| | Usually I only edit files in this directory
| +- general-ui.min.js <- the minified version is automatically stored in "/js"
| | I never edit a file in here
| +- /lib <- external libraries go in here.
| | NEVER edit a file inside the "/js/lib" folder!
| +- jquery-1.10.2.min.js <- Always add version-number to the files in /js/lib
+- /css
| +- /scss <- my SCSS source files which compile into "/css/style.css"
| +- /lib <- stuff like twitter bootstrap css. Never edit files in here
| +- /font <- webfonts used by the css
+- /inc <- my own PHP classes/modules/etc
| +- /lib <- external PHP modules (again: never edit these files yourself)
+- /img <- all images used by the application
+- /web <- my own PHP/HTML files
+- index.php <- this will load the /inc/application.php class which handles the rest
+- debug.php <- same as index, but enables some debugging flags enabled
+- config.php <- config stuff (DB, etc)
特定の外部ライブラリ上で。だから私は、彼らが単一のユニットを形成するように、このライブラリをコードに「ハードリンク」したいと思う。
私の助言は、gitサブモジュールを使用せず、完全に管理しているすべてのファイルを含む単一のリポジトリを持つことです。しかし、CDNを使用してライブラリをロードします(ロードするバージョンを正確に制御できるため、このソリューションは完璧に機能します)。 jQueryの新しいバージョンですか?最初に実装するのはローカルでテストしてから、新しいjQueryファイルを/ js/libフォルダに追加します(古いファイルを上書きせず、新しいファイルに一意のバージョン番号を追加します)
Gitサブモジュールは、実際には、あまりにも心配することはありませんし、あなたが持っているセットアップで実行してください。 – Matt
ありがとう... git submodulesは、他のプロジェクトへの上流へのコミットの可能性があるときに、いくつかのプロジェクトで使用するsvn:externalsとまったく同じように聞こえます。しかし、私はこの場合、タグ付きのバージョンに依存したいだけで、外部のリポジトリを指してはいけないと思います。 – Marcus