2015-06-13 10 views
17

Skonfigurowaliśmy aplikację angularjs na chmurze, która ma wszystkie pliki zasobów na s3, a stamtąd jest używana w chmurze dla SSL i wydajności.Kątowa i chmura w chmurze z Safari

Mamy identyczną konfigurację do tego, co jest opisane w tym przewodniku

https://rossfairbanks.com/2015/01/30/integrating-angular-s3-cloudfront.html

jak kiedyś sam słupek stworzyć własną konfigurację, wydaje się jednak, że to działa na wszystkich przeglądarkach z wyjątkiem Safari.

W przeglądarce Safari, podczas odwiedzania adresu URL bezpośrednio na danej ścieżce lub odświeżania podstron, router ui przekieruje stronę użytkownika na stronę docelową.

Dla celów inscenizacji mamy jednak tę samą konfigurację, ale działa bezpośrednio na S3 bez CloudFront w środku, a więc bez SSL. ale mimo to wydaje się działać nawet na Safari

, więc problem wydaje się być problem z CloudFront i Safari, aby być bardziej szczegółowe.

Czy ktoś może doradzić, co może być przyczyną? i jak możemy to rozwiązać?

UPDATE: Ten problem może być związany z tym błędem https://bugs.webkit.org/show_bug.cgi?id=24175

+1

Tak, wygląda na to, że Safari ignoruje fragmenty w przekierowaniach. Sposób obejścia jest tutaj wymieniony: http://stackoverflow.com/questions/17982594/how-do-i-preserve-uri-fragment-in-safari-upon-redirect – Manube

+1

inne obejście wspomniane tutaj: http://stackoverflow.com/questions/8436372/how-do-i-redirect-to-a-mobile-site-but-keep-the-hash-tag – Manube

+0

Żadne obejście nie działa w przypadku aplikacji Angular obsługiwanych w S3. – tansk1

Odpowiedz

0

I miał ten problem mnóstwo, ale nie tej konkretnej kwestii. Safari, które ma wpływ na komputery i urządzenia przenośne/tablety, ma takie dziwactwo. W wielu przypadkach mogłem go zmienić na parametr zapytania, gdy wiem, że przechodzi przekierowanie. To frustrujący problem, który trwa od miesięcy.

2

Angular on AWS (Cloudfront/S3) for Safari

zorientowali się, że trzeba użyć protokołu HTTPS Safari odświeżyć poprawnie. Możesz powiedzieć S3, aby przekierował do protokołu https i problem został rozwiązany:

<Redirect> 
    <Protocol>https</Protocol> 
    <HostName>test.example.com</HostName> 
    <ReplaceKeyPrefixWith>#!/</ReplaceKeyPrefixWith> 
</Redirect> 
Powiązane problemy