I think this should make it bit more clear: 1) User enters site at /v2/challenges/new 1.1) default: browser that supports html5 history would then serve index view from that route, index view has all the references to JS/CSS. Angular app loads, sees its at /v2/challenges/new and does what it needs to do for that route. 1.2) user agent is ie9: you would have to redirect them to root of domain.com plus appending this route to it via hash bang domain.com/#/v2/challenges/new. So at the end you actually redirecting to domain.com/#/v2/challenges/new.
On Thu, Apr 24, 2014 at 11:15 AM, Yale Kaul <[email protected]> wrote: > 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 a topic in the > Google Groups "AngularJS" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/angular/0cFJSAi68xw/unsubscribe. > To unsubscribe from this group and all its topics, 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. > -- 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.
