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]<javascript:> > > 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/ >>>> 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] <javascript:>. >> To post to this group, send email to [email protected]<javascript:> >> . >> 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.
