2009-08-13 13 views
3

Wie kann ich einige statische Inhalte in Liferay dienen? Ich habe eine Verzeichnisstruktur mit htmls, css, usw. und ich möchte es mit einer Adresse wie http://localhost:8080/myStaticContent/index.html und so weiter dienen.Liferay - Serve statischen Inhalt

Ich möchte nicht einen Front-End-HTTP-Server wie Apache verwenden.

Antwort

3

Ich habe es getan, indem ich ein .war mit nur statischem Inhalt entfaltete. Der Pfad ist die liveray URL/War_name.

Also, wenn ich einen Krieg mit einer Datei wie folgt aussehen:

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

Die URL wird so etwas wie http://localhost:8080/myproj/myDir/myFile.html

+0

Sie sich auch ohne myDir gehen kann - die URL zu verkürzen. Ich bin nicht sicher, ob eine WAR-Datei mit statischem Inhalt auch eine WEB-INF/web.xml benötigt, die von einem Servlet-Container aufgenommen wird, auch wenn kein Servlet enthalten ist. –

+0

ok - nachdem ich dies kommentiert habe, sehe ich, dass du deine eigene Frage beantwortet hast. Vergiss es. Für diejenigen, die dies auch versuchen: Beachten Sie, dass liferay einige URLs unterstützt, die nicht sofort offensichtlich sind, wie/c/*/html/*/images/* und einige mehr. Namenskonflikte sind hier leicht zu finden. –

+0

Danke für die Kommentare –

1

Ich nehme an, dass Liferay in diesem Fall JBoss oder Tomcat verwendet. Versuchen Sie folgendes:

  • Fund server.xml und fügen Sie ein <Context> Element, um es, wenn es jBoss ist, können Sie server.xml finden Sie hier:

[jboss-home]/server/[config-name] /deploy/jboss-web.deployer/server.xml

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

Es ist wie diese innerhalb des "Host" Element geht:

<Host name="localhost" .....> <!-- add it here --> </Host> 
  • Fügen Sie an dem für docBase ("/ absolute/path/to/static/content") angegebenen Speicherort einen WEB-INF-Ordner hinzu und legen Sie eine leere web.xml-Datei darin ab.
  • 0

    Edit: Ich denke, ich habe Ihre Frage falsch beantwortet, wenn ich dies beantworte - ich werde die Antwort hier lassen, nur für den Fall, dass jemand anders diese Frage findet und einige Anforderungen für statische Inhalte hat. Peter und Miguel Antworten geben, die besser Ihre Frage entsprechen)


    Ein einfacher Weg sein könnte liferays cdn features (CDN = "Content Delivery Network") zu nutzen. Leider habe ich bei einem kurzen Scan durch die Dokumentation nur diese Konfigurationsoption gefunden, aber einige Informationen darüber verpasst, welcher Inhalt als "statisch" betrachtet wird. Das heißt nicht, dass die Information nicht da ist - ich habe es einfach nicht gefunden.

    Ich denke, dass - obwohl eine cdn einen anderen Hostnamen impliziert - Sie vielleicht den gleichen Hostnamen und möglicherweise einen anderen Webapplikationskontextpfad (z. B. den Pfad auf Ihrem Server) erhalten. Sie können eine beliebige Anzahl von unabhängigen Anwendungen auf dem Server bereitstellen, auf dem liverey läuft.

    Besonders wenn Sie statischen Inhalt zu einem anderen Host/Anwendung aussortieren möchten, könnten Sie besser mit einem dedizierten Server (oder zumindest DNS-Namen) oder der Apache/Tomcat-Kombination sein, da Apache Berichten zufolge statische Inhalte mit viel weniger Ressourcen als Tomcat tut.