このURLを見つけました
サイトhttps://petitions.whitehouse.gov/src
の javascript ファイルのソース ( ) として。
そして、これ
css ファイルの場合。
質問は、なぜこのような複雑な名前が javascript または css ファイルに使用されるのですか? それは何らかのフレームワークまたは何によるものですか?それが何らかのフレームワークによるものであっても、問題は依然として残っています。
このURLを見つけました
サイトhttps://petitions.whitehouse.gov/src
の javascript ファイルのソース ( ) として。
そして、これ
css ファイルの場合。
質問は、なぜこのような複雑な名前が javascript または css ファイルに使用されるのですか? それは何らかのフレームワークまたは何によるものですか?それが何らかのフレームワークによるものであっても、問題は依然として残っています。
これはおそらく'minification'
、生産に不要な文字/記号 (改行/コメントなど) を削除するプロセスによるものです。
通常、このプロセスは、'Bundling'
各ソース ファイルを縮小するだけでなく、複数のソース (css/js) ファイルを組み合わせて HTTP 要求の数を減らすプロセスの一部です。
各「バンドル」の結果は一意の名前で保存されるため、次のバンドルの反復では別の一意の名前が付けられcaching
、新しい変更されたバンドルの変更を防止および反映できます。
これは、静的ファイルをハッシュして保存するためのトリックです。
このストレージの目的は、一部のページがまだ古い静的ファイルを参照している場合に備えて、古い静的ファイルのバージョンを提供し続けることです。たとえば、ユーザーまたはサード パーティのプロキシ サーバーによってキャッシュされている場合などです。さらに、将来の Expires ヘッダーをデプロイされたファイルに適用して、後続のページ アクセスの読み込み時間を短縮する場合に非常に役立ちます。
おそらく、ある種のミニファイヤ/難読化ツールによって生成された名前です。
CSS/JS スクリプトをコンパイルするたびに新しいバージョンのスクリプトが作成され、ブラウザーがキャッシュから古いバージョンをロードしないようにするには、新しい名前を付ける必要があるため、複雑です。
これらのファイル名は、ハッシュおよび/またはバージョン管理されているように見えます。これにより、正しいスタイル、JavaScript、およびアセットが常に読み込まれるようになります。また、機械で生成または縮小された結果である可能性もあります。
ここでのすべての回答は、CSS と JavaScript が言語ごとに 1 つのファイルにまとめられた理由 (つまり、すべての CSS が 1 つのファイルに、すべての JavaScript が 1 つのファイルにまとめられている) に関しては正しいものですが、なぜ英数字の文字列が使用される場合があります — たとえば、線形の数値 ID またはバージョン番号の代わりに。
この場合、英数字ハッシュを使用する主な理由は、一般に、集計に関して余分なデータを格納する手間や遅延を望まないためです。自動化されたシステムを使用している場合は常に、増加する数値が必要な場合は、その数値をデータベースなどのどこかに保存する必要があります。この番号をバージョン番号にしたい場合は、さらに複雑になります。これは、統合されたファイルごとに個別の番号を保存する必要があるためです (CMS を使用すると、統合されたファイルの数は急速に変化する可能性があり、すべてロードされているものに依存します)。その特定のページで)。
簡単に言えば、ソルト値と現在のタイムスタンプに基づいて、MD5
またはSHA1
HTML ソースのレンダリング時に英数字のハッシュを生成する方がはるかに簡単です。これらの関数は、生成されたハッシュの長さと増加し続けるタイムスタンプに基づいているため、以前の値 (他の投稿者が述べているように、キャッシュが関係している場合は回避したいもの) との衝突がないことをほぼ保証します。
ファイル名をランダムにシャッフルすることの追加の利点は、外部ユーザーがホットリンクやその他の悪意のあるトリックを行うのを防ぐことです. これは CSS ではそれほど問題ではありませんが、JS では問題になる可能性があります。