2010-03-15 4 views
1

Grails a tendance à écrire l'URL pour tout ce qui utilise ses tags comme/appName/whatever. Par exemple, si j'utilise le tag:Grails URL avec Tomcat/Apache ProxyPass

<g:javascript library="jquery"/> 

l'étiquette résultante est

<script src="/appName/jquery/jquery.js"></script> 

Cela provoque un problème avec l'aide ProxyPass avec Apache/Tomcat. Tous mes CSS, JS, images et liens ont ce/appName préfixé à eux.

Existe-t-il un moyen de contourner ce problème avec ProxyPass ou peut-être un moyen pour Grails de ne pas préfixer le nom app au début de toutes mes URL?

Répondre

1

Cela fonctionne pour moi, essayez-vous d'exécuter l'application comme domain.com/ plutôt que domain.com/appName?

Si oui, alors vous devrez probablement spécifier le paramètre de base absolu ou dans la balise.

+0

Oui, j'essayais de l'exécuter comme domain.com. Donc, tout finit avec/appName préfixé, ce qui provoque un problème. Le problème est avec la balise g: javascript, elle n'accepte pas le param absolu. Je me demande s'il existe un moyen de dire à tomcat que je suis un truc par/à la place de/appName? – intargc

2

Si vous ne disposez pas d'une autre application exécutée par défaut dans votre tomcat, ou que vous ne vous souciez pas de la remplacer, vous devez renommer votre fichier war en ROOT.war avant de le déployer. (et supprimer le répertoire ROOT s'il existe)

Si vous avez plusieurs applications et un seul serveur Tomcat, vous pouvez utiliser virtualhosts. Un hôte virtuel pour chaque application. (http://tomcat.apache.org/tomcat-6.0-doc/virtual-hosting-howto.html)

Si vous choisissez l'approche virtualhosts, vous devez utiliser le domaine de virtualhost lorsque vous définissez des phrases ProxyPass et assurez-vous que le serveur apache résout correctement le domaine virtualhost. (Si ce n'est pas le cas, vous devrez peut-être modifier le fichier hosts)

Désolé pour mon anglais.