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.

Reply via email to