so to fix that, you need to convert this route for ie9 into domain.com/#!/v2/challenges/new from domain.com/v2/challenges/new.
you could also may be look into polyfil https://github.com/browserstate/history.js/ might be something that you can work around. On Tue, Apr 29, 2014 at 12:30 PM, Yale Kaul <[email protected]> wrote: > That is correct. > > On Monday, April 28, 2014 8:38:14 PM UTC-7, Alesei N wrote: >> >> correct me if I am wrong, if you load */v2/challenges/new* in ie9, you >> get base route resolution in angular app right? instead of >> */v2/challenges/new* you get default page loaded right? >> >> >> On Mon, Apr 28, 2014 at 9:20 PM, Yale Kaul <[email protected]> wrote: >> >>> That mostly makes sense to me. >>> >>> The part I'm still confused about is 1.2. >>> >>> I'm able to make the server redirect to */#/v2/challenges/new* for IE9, >>> but how will Angular know to do the same thing at */#/v2/challenges/new*and >>> */v2/challenges/new* (no hashbang)? >>> >>> In other words, I load */v2/challenges/new* in Chrome and serve the >>> index route, which has all my Angular routes set up. One of those routes is: >>> >>> $routeProvider >>> .when('/v2/challenges/new', { >>> templateUrl: '/assets/templates/new.html', >>> controller: 'BuildController' >>> >>> ... so Angular correctly loads the correct controller and template. >>> >>> But if I load* /v2/challenges/new* in IE9, and then I configure Rails >>> to redirect to* /#/v2/challenges/new, *what should happen then? I >>> realize that answer is probably fairly specific to my app, but maybe >>> there's a general answer. >>> >>> Again, I really appreciate your help so far. This is super confusing to >>> me. >>> >>> (Sorry for the odd delay; had to step away from this problem for a few >>> days) >>> >>> >>> >>> >>> On Thursday, April 24, 2014 12:36:16 PM UTC-7, Alesei N wrote: >>>> >>>> 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/to >>>>> pic/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 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 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.
