Thanks so much for your reply, Alesei. So if I'm understanding you correctly, the flow for an IE9 visitor is this:
1. User loads /v2/challenges/new, 2. Angular rewrites to /#!/v2/challenges/new 3. Browser ignores everything after #, and loads '/' 4. Server serves up '/', which must have references to Angular scripts -- 5. This is the part I'm still not understanding. Once I get to the root route, the Angular router takes over? How does it differentiate between someone requesting /#!/v2/challenges/new and someone requesting root route? Thanks again! On Thursday, April 24, 2014 6:02:36 AM UTC-7, Alesei N wrote: > > it means, all the routes that you have set up in your SPA, should have > corresponding Rails routes. So when you are hitting that route directly in > browser, your rails app can serve html that has references to your angular > app javascript and styles. > > In case of hash bang and ie9 it depends how far you want to go, your root > route, should serve mark up that has references to javascript and styles, > so once app loads it can react to /#!/v2/challenges/new. There are other > things you can do, for example if some one comes from normal url from > search, but user agent is ie9, you could redirect to root with hash bang > equivalent of that route. > > > On Wednesday, April 23, 2014 3:54:44 PM UTC-5, Yale Kaul wrote: >> >> I've been working on an AngularJS/Rails app that must support IE9. From >> what I've read, I should set html5Mode to true in my AngularJS config, >> which will use the HTML5 History API for browsers that support it, and fall >> back to hashbang URLs for older browsers. All of the Angular stuff in my >> app is rooted at */v2/challenges/.* >> >> In the fantastic ng-book <https://www.ng-book.com/>, it says: >> >> "The back-end server will have to support URL rewriting on the server >> side. To support HTML5 mode, the server will have to make sure to deliver >> the index.html page for all apps. That ensures that our Angular app will >> handle the route." >> >> What does that mean specifically? >> >> If my AngularJS content is at /v2/challenges/new (which appears as >> /#!/v2/challenges/new in IE9), >> >> ...what does that mean for me in terms of the URL rewriting I need to do >> on the server side? >> >> >> Thanks! >> > -- You received this message because you are subscribed to the Google Groups "AngularJS" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/angular. For more options, visit https://groups.google.com/d/optout.
