2017-08-20 1 views
0

J'utilise Angularjs, Java pour mon application. Au départ, j'utilise tomcat pour exécuter mon application. quand je lance mon projet, il ouvrira l'URLComment réécrire l'URL avec le moteur de l'application Google - Le mode HTML5 ne fonctionne pas

http://localhost:8080/projectname

donc je configuré mon étiquette de base et le mode html5 comme

$locationProvider.html5Mode(true); 
$locationProvider.hashPrefix(''); 
<base href="/projectname/"> 

avec fichier de bienvenue configuré pour Main.html dans web.xml et je ajouté le code

<welcome-file-list> 
    <welcome-file>main.html</welcome-file> 
</welcome-file-list> 

<error-page> 
    <error-code>404</error-code> 
    <location>/</location> 
</error-page> 

pour rendre le travail-routeur avec le mode ui html5 (mentionné dans la page d'émission ui-routeur).

Puis-je changer mon projet google projet Java standard moteur app et quand je lance mon projet ouvert avec url

http://localhost:8080

donc je changé mon étiquette de base pour

<base href="/"> 

avec il n'y a pas de problème dans main.html mais mon routage ne fonctionne pas. Quand j'utilise $ state.go, ça marche. Mais en rafraîchissant ou en entrant manuellement l'url je reçois l'erreur 404. Mon erreur de la console est

WARNING: No file found for: /url 

j'ai parlé beaucoup de blogs, mais encore confus pour configurer


J'ai configuré le printemps dans le fichier web.xml

<servlet> 
     <servlet-name>dispatcher</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>dispatcher</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 

Il semble que cartographie les la demande d'url de printemps, est-il un moyen de résoudre ce problème?

+0

double possible de [Tomcat 8 réécriture d'URL] (https://stackoverflow.com/questions/ 28767585/tomcat-8-url-rewrite). – georgeawg

+0

Copie possible de [AngularJS: impossible d'obtenir les URL du mode html5] (https://stackoverflow.com/questions/17444072/angularjs-cant-get-html5-mode-urls-with-ui-route-state) – georgeawg

+0

@ georgeawg J'utilise Java EE rewrite, ça marche quand j'utilise Tomcat mais la même réécriture de JavaEE ne fonctionne pas quand je passe de mon projet à google app engine. – Rishi

Répondre

1

problème est avec actualisez la page, si vous ouvrez la base et cliquez sur un lien, il fonctionne, vous devez écrire le code pour l'URL réécriture

Pour une application exécutant IIS, nous devons ajouter:

<system.webServer> 
    <rewrite> 
    <rules> 
     <rule name="Main Rule" stopProcessing="true"> 
     <match url=".*" /> 
     <conditions logicalGrouping="MatchAll"> 
      <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />         
      <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
     </conditions> 
     <action type="Rewrite" url="/" /> 
     </rule> 
    </rules> 
    </rewrite> 
</system.webServer> 

See detail for IIS configuration

Désolé, je jamais travaillé avec tomcat