3 ms·
Angular JS Gotcha: HTML5 Mode Routing
- nateabele 13y agoHere: https://github.com/angular-ui/ui-router/wiki/Frequently-Asked-Questions#how-to-configure-your-server-to-work-with-html5mode https://github.com/angular-ui/ui-router/wiki/Frequently-Aske... You're welcome.
- egeozcan 13y agoThis isn't some magic from AngularJS, it is a standard HTML5 API and it's been around for a while. It is designed to allow single page applications to use beautiful URLs. So, this isn't an AngularJS gotcha. Not at all. You can read more about it here: http://diveintohtml5.info/history.html http://diveintohtml5.info/history.html
- harryf 13y agoAnd here... > The reason why refreshing your browser breaks HTML5 mode is that all the routes in your AngularJS application are not real. Release[Board] doesn't have a /releases page. AngularJS is using some clever JavaScript to make it seem like a /releases page exists. When the user hits refresh, the browser tries to load a real /releases page, which is non existent. I find this a completely unacceptable user experience. ...isn't this a case of "Duh. What did you expect to happen?"
- sil3ntmac 13y agoYep. and the simple solution is a server-side wildcard route.
- a_soncodi 13y agoSwitching between HTML5 and 'hashbang' URLs lets you run apps in environments which lack support the history API or absolute URLs. Examples include old IE and Cordova. The bit of webserver config necessary is a non-issue, imo.
- strommen 13y agoSo what you're saying is...when you set the URL to something that no longer points to a Resource, it no longer works? Who could have guessed that undermining a basic concept of the Web might cause problems.