簡體   English   中英

使用GZIP嵌入DLL的ASP.NET JavaScript文件

[英]ASP.NET JavaScript File Embeded In DLL With GZIP

我們有幾個相當大的JavaScript文件嵌入到單個腳本資源DLL中。 然后,多個項目將通過引用來使用它,並且頁面將通過ASP.NET腳本管理器來使用。 這使我們的ASP.NET頁面中的內容保持整潔,並且只需很少的工作即可集成到新項目中。

問題是這些腳本文件中的一些文件很大(大約100KB),下載時間很長。 通過在嵌入之前在它們上運行minify,可以減少很多(大約70KB),但還不夠。 我們要做的是在嵌入文件之前先將文件壓縮。 但是,僅gzip解壓縮文件會導致語法錯誤,因為未解壓縮內容。 嵌入資源時,在AssemblyInfo中應用了一種內容類型“ text / javascript”,但我們找不到指定內容編碼的方法。

有什么方法可以使此工作無需編寫httpmodule / handler(這意味着更改所有使用項目的配置)嗎?

好的,因此,從許多不同的嘗試來看,似乎缺少答案和大量的Google搜索工作,HttpModule是解決此問題的唯一方法。 為了使配置更容易,我在包含腳本文件的相同dll中設置了一個HttpModule,如下所示。

簡化的DLL結構

  • \\ ScriptMinified \\ *。js [嵌入式資源](僅限Mined)
  • \\ ScriptCompressed \\ *。gz [嵌入式資源](壓縮並縮小)
  • \\ ScriptDebug \\ *。js [Embedded Resource](原始未壓縮和注釋)
  • MyScriptManager.cs
  • MyHttpModule.cs

唯一的附加工作是使用者的Web配置中的條目以啟用該模塊。 另外,我已經在MyScriptManager中進行了初始化調用,該調用包括腳本標簽,檢測新http模塊的存在/模式並根據需要提供gzip,調試或最小化版本。 這意味着我們不必重新編碼或配置任何舊項目即可使它們工作,因此可以達到幾乎相同的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM