Wie die Umleitung im web.xml
Arbeite ich an einem GAE/J app und ich habe die folgende Struktur:
- war
|
- mobile
| |
| - assets
| | |
| | + a.jpg
| | + b.gif
| | + c.js
| + a.jsp
| + b.jsp
| + index.jsp
| + d.css
| + e.css
|
+ landing.jsp
Nun in web.xml ich habe ein URL-mapping von /mobile
Hinweis auf <jsp-file>/mobile/index.jsp<jsp-file>
. In meinem index.jsp
ich benutzt relative Adressierung verweisen alle erforderlichen Ressourcen, wie JS-Dateien, CSS-Dateien und Bilder; und dies funktioniert auch, wenn ich geben our_domain/mobile/index.jsp
im browser. Aber wenn ich our_domain/mobile
dient es die richtige Datei (index.jsp), aber jede relative Adresse, die Pausen, das heißt, kein CSS, kein JS, kein Bild.
Aus meiner Untersuchung, es scheint, dass web.xml
eigentlich nicht umleiten, sondern ruft eine angegebene JSP/Servlet, um Antwort auf eine bestimmte URL-Muster. Dies funktioniert nicht gut mit der relativen Adressierung von as-Pfad-Informationen, dass es richtig wäre, mit einem echten redirect Links an der Wurzel. Wie kann ich sicherstellen, dass die relativen Adressen arbeiten, wie erwartet, in dieser Art von Szenario?
[Bearbeiten]
Ich habe versucht, sevral-Konfigurationen. Jetzt /mobile
URL funktioniert und alle meine CSS geladen wird, aber /mobile/
laden nicht meine CSS. Hier meine Zuordnung:
<servlet> <description>Landing page on mobile site</description>
<display-name>MobileIndex</display-name>
<servlet-name>MobileIndex</servlet-name>
<jsp-file>/mobile/index.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>MobileIndex</servlet-name>
<url-pattern>/mobile/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>MobileIndex</servlet-name>
<url-pattern>/mobile</url-pattern>
</servlet-mapping>
- Was ist Ihre Zuordnung Aussehen?
<servlet-mapping> <servlet-name>MobileIndex</servlet-name> <url-pattern>/mobile</url-pattern> </servlet-mapping>
WoMobileIndex
ist auch erklärt, inweb.xml
als servlet-name wies auf die/mobile/index.jsp
- Datei. Wenn dis nicht funktioniert, habe ich ja wiesMobileIndex
an eine andere JSP, deren einziger Zweck es war, eineresponse.sendRedirect("/mobile/index.jsp");
aber dat hat nicht funktioniert entweder. Ich änderte dann die d umleiten JSP 2 einer standard-servlet-s erreichen d gleichen Zweck, aber es auch nicht funktioniert wie erwartet. Sie alle weitergeleitet, aber mein CSS & JS-Dateien stil couldnt b befindet.- Warum nutzen Sie die web.xml zum anzeigen einer jsp auf einen Weg, wo ist es? Brauchen Sie wirklich ein servlet? Keiner Weise das ist nur ein Missverständnis, nicht dein problem. Wie machen Sie auf Ihre Ressourcen Dateien (zB. CSS/JS/Img)?
- relative Adressierung, e.g
<link href="d.css" />
Der Grund, warum ich gemappt, dass es der Weg ist, dass ich möchte, dass meine Benutzer in der Lage, nur geben Siemy_domain/mobile
im browser stattmy_domain/mobile/index.jsp
- Was ist, wenn Sie dies href="./d....css"?
- Gleichen Ergebnis. Frage aktualisiert.
- Überprüfen Sie heraus meine Antwort, die zeigt, wie das problem zu lösen, die Referenz CSS/JavaScripts usw. in JSP-Dateien: stackoverflow.com/a/14063039/814702
- wurde der vorgeschlagenen Lösung durch die wirksam für Sie ist. Wenn ja, welche konkreten änderungen haben Sie getroffen, um Ihre mappings oben gezeigt?
- Ist dieses Problem immer noch Auftritt?
- Ich habe gerade überprüft und das Problem ist nicht mehr vorhanden. Ich kann mich nicht erinnern, was ich getan habe, um es zu arbeiten, da habe ich nicht mehr die Aufrechterhaltung der das Projekt für eine lange Zeit. Ist dies ein Problem, das Sie erleben, die ich untersuchen kann.
- Keine Sorge, ich war nur Fragen, ob Sie noch Hilfe brauchten! Freut mich zu hören. Ich denke, diese Frage wird ohne Antwort. Ich bin mir nicht wirklich sicher, was der Stack-Overflow-Richtlinien sind für eine situation wie diese...
- vielen Dank. Ich habe alles, was interessant in die repo. Ich bemerkte, dass ich später nahm
/mobile
ganz. Ich bin unglaublich dankbar für all die Unterstützung, die ich erhielt auf diesen thread. Freundlicherweise mir verzeihen, es ist schon über 3 Jahre. Ich war jonglierbälle in dieser Zeit und so war nicht sehr organisiert, dann werden wir das Projekt eingestellt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin mir nicht sicher, redirect, was Sie eigentlich wollen. Eine gute Organisation für Ihre app:
myapp/
pom.xml
src/
main/
java/
... Your Source Code ...
webapp
landing.jsp
assets/
a.jpg
b.gif
c.js
mobile/
index.jsp
a.jsp
b.jsp
Sie können natürlich, ändern Sie den Speicherort Ihrer assets mit dem
<public-root>
und<static-files>
Elemente appengine-web.xml.