我正在思考drupal multisite的内容,每个网站都应该有主题,插件和各种静态文件的文件夹。事实证明,用Java做起来并不容易:类必须在一个地方,其他的标签文件,第三个静态文件,只有jsp文件可以去任何地方。类和标签可以打包在jar中,但是如何从jar提供静态文件和jsps?做这种事的最好方法是什么?
上一个稍微相关的问题:Jsp tags outside WEB-INF/tags
答案 0 :(得分:1)
默认情况下,大多数servlet容器中的静态文件都是从WEB-INF以外的任何地方提供的,与JSP相同(除了未解释)。
您可以通过编写一个小的servlet来加载来自jar的静态文件,该servlet将它们作为资源加载(使用例如Class.loadResourceAsStream()
)并将它们写在ServletOutputStream
上。
我不知道drupal,但听起来像Java中的等价物是Web应用程序,它可以捆绑为WAR存档(http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/WebComponents3.html)
答案 1 :(得分:0)
不要真正理解你的问题。我从同一个webapp运行多站点,打包为单个战争。
我的WAR组织如下,
myapp/WEB-INF
myapp/common
myapp/site1
myapp/site2
所有类别,TLD都是共享的,但有两个网站拥有完全不同的品牌,主题等。网站特定文件会转到他们自己的目录。他们共享许多静态文件,如JavaScript和图像。这些文件存储在公共文件下,可以使用每个站点的相对URL进行引用,例如
../common/images/cart.jpg
整个内容作为单个WAR提供,并作为单个应用程序运行。该网站位于
http://example.com/myapp/site1
我们还有一个带有mod_rewrite的Apache前端,并且这些站点也可用作
http://site1.example.com
http://site2.example.com