11

Czy w Rails 3.1 dostępne są klejnoty lub metody, które automatycznie przesyłają zasoby do chmury amazon i używają ich zamiast serwerów lokalnych? Domyślam się, że łatwo jest ręcznie przesłać skompilowane zasoby, a następnie zmienić konfigurację aplikacji szyny, aby korzystać z tego hosta zasobów. Jednak po zmodyfikowaniu zasobu przesyłanie do chmury będzie musiało zostać wykonane ponownie ręcznie. Jakieś dobre sposoby na to?Rails 3 automatyczne wdrażanie zasobów do Amazon CloudFront?

Odpowiedz

8

Spójrz na https://github.com/rumblelabs/asset_sync - używamy go tylko do S3, ale myślę, że część CloudFront jest całkiem łatwa, gdy zasoby są na S3.

Kończy się to zadaniem prowizji, które po prostu dodajesz do wykonania w procesie wdrażania.

1

Inną opcją będzie https://github.com/moocode/asset_id, readme ma przykład, aby używać go z chmurą. Powinien działać z szynami 3.1, ale użyłem go tylko w wersji 3.0.x.

Ss John powiedział, że wszystkie rozwiązania staną się zadaniem prowizji + trochę logiki, aby zmienić ścieżkę aktywów w szynach.

10

Jeśli używasz opcji "Niestandardowe pochodzenie" Cloudfronts, nie musisz niczego przesyłać, Cloudfront pobierze zasoby z twojego serwera w razie potrzeby. Szczegółowe informacje na temat konfigurowania tej stronie:

http://blog.ertesvag.no/post/10720082458

+0

... i dla tych, którzy za pomocą elastycznego łodydze, biorąc pod uwagę swoje aktywa są prawdopodobnie prekompilowana domyślnie serwer nginx będzie obsługiwał je w chmurze, więc nie powinno to mieć większego wpływu na to podejście (żądanie nigdy nie trafia do aplikacji rails). – kross

13

pewno sprawdzić asset_sync na github. Lub nasz artykuł o centrum deweloperskim Heroku pod numerem Using a CDN asset Host with Rails 3.1 on Heroku.

Występuje spore polepszenie wydajności korzystania z niestandardowego źródła CDN asset_sync, pozwalając aplikacji leniwie kompilować zasoby w produkcji lub serwując je prekompilowane bezpośrednio z serwerów aplikacji. Powiedziałbym jednak to. Napisałem to.

  • Z asset_sync i S3 można precompile aktywa oznaczające wszystkie aktywa są tam gotowe do podania na hoście aktywów/CDN natychmiast
  • Można wymagać wyłącznie : aktywa zawiniątko w environment.rb na prekompilacji , oszczędzanie pamięci w produkcji
  • Twoje serwery aplikacji NIGDY nie trafiają w przypadku żądań zasobów. Możesz spędzić drogie czasy obliczeniowe, wiesz. Przetwarzanie danych. wszystko
  • Najlepsze nagłówki HTTP cache praktyka są ustawione domyślnie
  • Można włączyć automatyczną kompresję gzip z dodatkowym config
+0

czy znasz przyczynę, dlaczego nagłówki pamięci podręcznej HTTP nie będą ustawione domyślnie? Czy teraz trzeba je ustawić ręcznie w pliku konfiguracyjnym asset_sync? coś w stylu config.custom_headers = {'Cache-Control' => 'max-age = 315576000', 'Expires' => 1.year.from_now.httpdate} Nie mogę wydobyć mojego, żeby ustawić cokolwiek ... każda pomoc doceniona – Richlewis