私はこの投稿を見ました:各ファイルの先頭に追加された文字。
その場合、作成者は手動でソースファイルを読み取り、内容を書き込んでいました。私の場合、HttpRequestを介して抽象化しています。TransmitFile():
public void ProcessRequest(HttpContext context)
{
HttpRequest req = context.Request;
HttpResponse resp = context.Response;
resp.ContentType = "application/javascript";
resp.TransmitFile("foo.js");
resp.TransmitFile("bar.js");
resp.TransmitFile("baz.js");
}
.jsファイルは実際にUTF-8でエンコードされています。これは、最初のファイル以外の各ファイルの先頭にBOMが正しく表示されないことを意味します。
TransmitFile()の良いところは、(a)読み取りと書き込みのプロセス全体を抽象化し、(b)最初にファイルをメモリに読み込まないように最適化されていることです。これは、ファイルが大きい場合やファイルが大きい場合に非常に重要です。多くの同時リクエストがあります。ただし、逆に、BOMがないとUTF-8に再エンコードできません。(これはリークのある抽象化の例だと思います。)
この問題を解決するためのエレガントな方法はありますか?ありがとう!