2009-08-13 141 views
3

如何在liferay中为某些静态内容提供服务?我有一个htmls,css等目录结构,我想用http://localhost:8080/myStaticContent/index.html等地址来提供它。Liferay - 发送静态内容

我不想使用像Apache这样的前端http服务器。

回答

3

我已经完成了,只通过部署一个.war与静态内容。路径是liferay url/war_name。

所以,如果我有这样的文件一战:

myproj.war 
+-- myDir 
    +-- myFile.html 

的网址会像http://localhost:8080/myproj/myDir/myFile.html

+0

你也可以去无MYDIR - 缩短的URL。我不确定包含静态内容的war文件是否也需要由servlet容器拾取WEB-INF/web.xml,即使没有包含servlet也是如此。 – 2009-10-23 20:09:00

+0

好 - 已评论这个我看到你回答了你自己的问题。没关系。对于那些也尝试这样做的人:请注意,liferay提供了一些并不明显的URL,比如/ c/*/html/*/images/*等等。这里很容易出现命名冲突。 – 2009-10-23 20:12:51

+0

感谢您的意见 – 2009-10-23 22:49:22

1

我认为Liferay在这种情况下使用JBoss或Tomcat。试试这个:

  • 发现server.xml中和>元素添加一个<上下文给它,如果它是JBoss的,你可以找到server.xml中的位置:

[JBoss的家庭] /服务器/ [配置名称] /deploy/jboss-web.deployer/server.xml

<Context path="/myStaticContent" 
    docBase="/absolute/path/to/static/content" debug="0" reloadable="true"/> 

它是这样的 “主机” 元素中:

<Host name="localhost" .....> <!-- add it here --> </Host> 
  • 在为docBase(“/ absolute/path/to/static/content”)提到的位置添加一个WEB-INF文件夹并在其中放置一个裸骨骼web.xml。
0

编辑:我想我在回答这个问题时误解了你的问题 - 我会在这里留下答案,以防别人发现这个问题,并且有一些与你不同的静态内容要求。彼得和Miguel给予更好满足您的特定问题的答案)


一个简单的方法可能是利用liferays cdn features(CDN =“内容分发网络”)。不幸的是 - 通过文档的快速扫描 - 我只找到了这个配置选项,但错过了关于什么内容被认为是“静态”的一些信息。这并不是说信息不存在 - 我只是没有找到它。

我想 - 即使cdn意味着不同的主机名 - 您可能会得到相同的主机名和可能的另一个web应用上下文路径(例如服务器上的路径)。您可以在服务器liferay中部署任意数量的独立应用程序。

尤其是当你要挑出的静态内容到不同的主机/应用程序,你可能会用一个专用的服务器更好(或至少DNS名称)或阿帕奇/ tomcat的conbination,据说像Apache提供静态内容比tomcat少得多的资源。