Weblogic<;虚拟目录映射>;内耳

Weblogic<;虚拟目录映射>;内耳,weblogic,atg,Weblogic,Atg,您可以使用引用部署的EAR中的静态内容吗?它会提供任何好处吗 免责声明:理想情况下,字体、javascript和css等静态资源应该由Web服务器提供,而不是由应用程序容器提供 关于Weblogic中的,有许多文章。它也有很好的文档记录和记录 我的应用程序部署在以下位置: c:\weblogic\deploy\ACME.ear 在ACME.ear内部,有以下文件夹结构用于CSS、font和JS store.war\include\js\script.js store.war\include\j

您可以使用
引用部署的EAR中的静态内容吗?它会提供任何好处吗

免责声明:理想情况下,字体、javascript和css等静态资源应该由Web服务器提供,而不是由应用程序容器提供

关于Weblogic中的
,有许多文章。它也有很好的文档记录和记录

我的应用程序部署在以下位置:

c:\weblogic\deploy\ACME.ear
ACME.ear
内部,有以下文件夹结构用于
CSS
font
JS

store.war\include\js\script.js
store.war\include\js\function.js
store.war\include\fonts\font.woff
store.war\include\fonts\font.woff2
store.war\include\css\css-output\ie.css
store.war\include\css\css-output\interactive\large.css
store.war\include\css\css-output\interactive\small.css
我的上下文根被指定为
/store

在正常操作中,我可以访问站点中的script.js,如下所示:

http://www.acme.com/store/include/js/script.js
然后,该请求将通过我的应用程序请求管道。我试图实现的是将
/include/
文件夹中的内容作为静态文档提供给
.war
,而不必通过整个请求管道(在我的例子中是ATG)

我在我的
weblogic.xml中添加了以下几行

<virtual-directory-mapping>
    <local-path>C:/weblogic/deploy/ACME.ear/store.war/include</local-path>
    <url-pattern>/include/css/*</url-pattern>
    <url-pattern>/include/fonts/*</url-pattern>
    <url-pattern>/include/js/*</url-pattern>
    <url-pattern>/include/lib/*</url-pattern>
</virtual-directory-mapping>    

C:/weblogic/deploy/ACME.ear/store.war/include
/include/css/*
/包括/字体/*
/include/js/*
/include/lib/*
希望这样做,而不是通过整个管道传递请求,只是将其作为静态资源呈现

根据文档,它将首先尝试通过
进行渲染,然后再尝试从容器文档根进行渲染

即使使用上述配置,
/include/
文件夹中的静态内容仍由容器呈现,而不是通过Weblogic作为静态资源呈现。我有以下问题:

  • 这是一个有效的方法吗?即使静态资产存在于.war中,我是否可以使用上述配置将其呈现为“外部”静态资产
  • 是否应包括
    上下文根目录
    是否应包括
    上下文根目录
    ?(我尝试过包括和排除的各种组合,但没有效果)
  • 如何使用
    访问文件夹和子文件夹中的文件。是否需要指定每个子文件夹
  • 上面的
    配置不正确。因为这是不正确的,Weblogic将尝试定位该文件夹中的内容,如果定位失败,则恢复到从默认的
    文档根目录提供内容。正确的配置是:

    <virtual-directory-mapping>
        <local-path>C:/weblogic/deploy/ACME.ear/store.war</local-path>
        <url-pattern>/include/*</url-pattern>
        <url-pattern>*.js</url-pattern>
        <url-pattern>*.css</url-pattern>
        <url-pattern>*.woff</url-pattern>
    </virtual-directory-mapping>
    
    以便将其作为虚拟目录找到


    仍然没有弄清楚它是否提供了任何实际的运行时好处。

    为什么要执行上述操作,而不是像您指出的那样从web服务器提供这些服务?通常是因为CSS、JS、字体和一些图标(如favicon)受源代码控制,而Apache提供的资产则不受源代码控制。我正在为非JSP资产(比如最近的CRS)创建一个单独的.war。在这里,我试图将web.xml配置为简单地将请求传递给Weblogic并返回,但由于一些奇怪的原因,仍然在ATG中处理。可能是我的web.xml配置错误。如果我是在Unix基础设施上运行的,我会很容易地跨服务器进行一些符号链接,所有人都会很高兴。优先级稍有变化,因此我们将很快再次查看。您的
    是什么?您可能需要将其更改为图像的路径。
    C:/weblogic/deploy/ACME.ear/store.war/include