Ile kodu rubinowego zajmuje udostępnianie statycznych treści publicznie? Czy w ogóle przechodzi przez aplikację szyny? Czy używa on Rack::Static?W jaki sposób Railsy wyświetlają publicznie statyczne treści?
Odpowiedz
Szyny nie używają Rack::Static
, mają własną wersję, ActionDispatch::Static
. Powinieneś go zobaczyć, jeśli uruchomisz rake middleware
.
Zostało to dodane tylko do stosu oprogramowania warstwy Rails if config.serve_static_assets
is true. To ustawienie: defaults to true, ale domyślnie wygenerowano config/environments/production.rb
turns if off.
Pomysł polega na tym, że w trakcie rozwoju istnieje prosty pojedynczy proces, który można uruchomić i sprawdzić, czy wszystko działa i gdzie wydajność nie jest problemem, ale po wdrożeniu do produkcji konfiguruje się serwer WWW (zazwyczaj Apache lub Nginx) do obsługi plików statycznych, ponieważ jest o wiele lepiej niż Ruby.
Jeśli korzystasz z Heroku, ich najnowszy stos cedrowy nie używa oddzielnego serwera WWW dla plików statycznych, więc jako część deploy process wstrzykuje Rails plugin to serve static assets. Cała ta wtyczka nie jest ustawiana jako true na serve_static_assets
.
To zależy. Jeśli do uruchomienia aplikacji używasz czegoś w stylu: phusion passenger, domyślnym zachowaniem jest używanie Apache bezpośrednio i pomijanie szyn dla dowolnej statycznej zawartości. Jeśli używasz Webrick (serwera rails), to użyje on znacznie więcej rails/rack code do wykonania statycznej obsługi.
Uwaga: jeśli korzystasz z apache/nginx z pasażerem: w trybie produkcyjnym, ponieważ domyślnie, aby apache obsługiwał całą zawartość statyczną, musisz uruchomić aplikację rake assets:precompile
przed uruchomieniem jej w apache lub statyczna zawartość nie jest umieszczana w miejscu, w którym musi być apache, aby szybko ją uzyskać, w postaci gotowej do użycia.
- 1. Jaki jest najlepszy sposób na obsługę generowanych przez użytkowników treści html, które będą wyświetlane publicznie?
- 2. W jaki sposób statyczne zmienne składowe wpływają na rozmiar obiektu?
- 3. W jaki sposób biblioteki statyczne łączą się z zależnościami?
- 4. W jaki sposób konstruktory statyczne mogą być nieprywatne?
- 5. Jaki jest czysty sposób wysyłania treści z żądaniem DELETE?
- 6. Jak wyświetlać treści statyczne za pomocą Spocka (Haskell)?
- 7. Przekaż dalej publicznie typedef class w C++
- 8. CSS Odpowiedni sposób centrowania treści
- 9. W jaki sposób pojęcie statyczne w języku Java różni się od C#?
- 10. W jaki sposób można refaktoryzować klasy statyczne w celu użycia iniekcji zależności?
- 11. W jaki sposób zaimplementować tajne menu?
- 12. Utwórz publicznie wiadro w Amazon S3
- 13. W jaki sposób potwierdzić zawartość treści odpowiedzi w szynach 3 test funkcjonalny
- 14. W jaki sposób można użyć parametru funkcji bez wspominania o nim w treści funkcji?
- 15. W jaki sposób uzyskujesz dostęp do treści posta w usłudze Amazon SNS za pomocą Express/Node.js
- 16. W jaki sposób wstawić znak nowej linii w treści wiadomości komponentu rejestratora mułów:
- 17. Czy można bezpiecznie udostępnić publicznie Firebase apiKey?
- 18. Oprócz testowania, w jaki sposób Injection Dependency jest lepszy niż statyczne klasy/metody?
- 19. W jaki sposób mashupy craigslist pobierają dane?
- 20. Renderować statyczne strony z indeksowaniem AngularJS do celów SEO?
- 21. Najlepszy sposób zarządzania ustawieniami konfiguracji aplikacji Railsy w bazie danych?
- 22. W jaki sposób CLR obsługuje wywołania metod zewnętrznych w C#
- 23. Łączenie statyczne Qt i wdrażanie
- 24. Jak uzyskać dostęp do RabbitMq publicznie
- 25. Obsługuj statyczne pliki PNG z typem treści "image/png", a nie "image/x-png".
- 26. W jaki sposób Google radzi sobie z indeksowaniem treści podczas korzystania z interfejsu History API?
- 27. W jaki sposób Google rozpoznaje treści dla dorosłych dzięki funkcji bezpiecznego wyszukiwania?
- 28. W jaki sposób Google App Engine dev_appserver.py udostępnia świeże treści bez ponownego uruchamiania?
- 29. statyczne pola w wewnętrznych klas
- 30. Railsy after_commit?