簡體   English   中英

如何為特定目錄啟用 gzip 壓縮並告訴瀏覽器緩存它的內容?

[英]How to enable gzip compression for specific directory and tell browsers to cache it's contents?

我正在使用 Oracle 的 ORDS 20.2,它嵌入了 jetty/9.4.28.v20200408、APEX 20.1、Database 18c XE、Google Chrome 版本 84.0.4147.135(官方版本)(64 位)、opera 版本:70.0.3728.7 Ultimate 和 Windows .

在 APEX 中有一個目錄,其中包含 APEX 的靜態文件 - CSS 和 Javascript 文件以及圖像文件。 我需要為該目錄​​啟用 gzip 並告訴瀏覽器將其緩存至少 12 小時,以便根據此處的 Oracle 文檔提高 APEX 開發環境和我的 APEX 應用程序的性能, https://docs.oracle.com/en /database/oracle/application-express/19.2/htmig/performance-optimization-tasks.html#GUID-668ED330-AFDC-4A43-AA11-D67FCCA58DA1

我在我的 ORDS 配置目錄的“獨立”文件夾下創建了一個名為“etc”的文件夾。 這是我應該放置任何 Jetty 的 Xml 配置文件的文件夾。 然后創建一個名為“jetty.xml”的文件,其中包含以下內容以實現 Jetty 文檔中關於發送 Cache-Control 標頭的內容, https://www.eclipse.org/jetty/documentation/current/header-filter.html

    <?xml version="1.0"?>  
    <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN"   
    "http://www.eclipse.org/jetty/configure.dtd">  
    <filter>  
       <filter-name>HeaderFilter</filter-name>  
       <filter-class>org.eclipse.jetty.servlets.HeaderFilter</filter-class>  
       <init-param>  
         <param-name>headerConfig</param-name>  
         <param-value>  
          "add Cache-Control: max-age=43200"  
         </param-value>  
       <init-param>  
         <param-name>includedPaths</param-name>  
         <param-value>  
          "D:\ords\images"  
         </param-value>  
       </init-param>  
     </filter>  

但是當我通過一個批處理文件運行 ORDS 時

    cd D:\Original\Oracle_ORDS_Editions\ords-20.2.0.178.1804
    d:
    java -jar ords.war standalone

cmd 窗口打開然后自動消失。 我需要知道為什么代碼失敗並且仍然需要為該目錄​​啟用 gzip。 謝謝你。

HeaderFilter用於傳統上通過 webapp 存檔(WAR 文件)部署的 webapp。

HeaderFilter的文檔配置適用於特定於正在部署的 web 應用程序的 war 內部WEB-INF/web.xml servlet 描述符(通常在 WAR 文件中找到)。

隨意創建etc目錄和jetty.xml文件從來都不是 Jetty 的相關配置形式。

etc目錄和jetty.xml概念僅在您使用獨立的 Jetty 技術(例如在jetty-home或較舊的jetty-distribution存檔中看到的內容)時才相關。 更具體地說, start.jar的內jetty-home檔案是唯一一個看起來並既可使用etc目錄或jetty.xml文件。

jetty.xml ,該start.jar知道的永遠不會被手動創建或編輯它管理。 事實上,它是一個典型的只讀文件,隨jetty-home存檔一起提供,並就地使用。 etc目錄位於jetty-home存檔中,也可以在 Jetty Standalone 的應用程序特定配置中看到,稱為${jetty.base}目錄。

您提到了“jetty/9.4.28.v20200408 嵌入式”,這通常意味着它沒有使用獨立的 Jetty 概念。 在嵌入式 Jetty 場景中,Jetty 服務器的配置通常在父項目(在您的案例中為 Oracle ORDS)的配置技術中完成。 您需要知道 Jetty 服務器的配置方式,並在父項目提供給您的任何配置的限制范圍內工作。

暫無
暫無

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

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