2009-08-13 77 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少得多的資源。