繁体   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