Wyłącz Minifikację zasobów w produkcji Rails
Aby debugować javascript w moim środowisku produkcyjnym heroku, muszę wyłączyć kompresję zasobów (lub przynajmniej kompresję javascript). Próbowałem config.assets.compress = false
wraz z config.assets.debug = true
, A skompresowane aktywa nadal były używane. Następnie usunąłem skompresowane aktywa, w którym to momencie żadne aktywa nie zostały w ogóle renderowane. Dodałem config.assets.enabled = false
, co nie pomogło. Próbowałem skopiować nieskompresowane zasoby do różnych katalogów, w tym katalogu głównego aplikacji, public i public/assets (dwa ostatnie przy użyciu zarówno foldery " images," javascripts " i "stylesheets" oraz umieszczanie zasobów bezpośrednio w folderach bez trzech podfolderów). W końcu udało mi się uzyskać Skrypty javascripts do pracy, zmieniając html, aby bezpośrednio odwoływać się do wszystkich plików javascript. Ale CSS i obrazy nadal nie działają.
9 answers
Wymyśliłem to obejście po przeczytaniu dokumentów :
Utwórz moduł, który nie robi nic, aby skompresować js / css tutaj: lib/modules/no_compression.rb
class NoCompression
def compress(string)
# do nothing
string
end
end
Skonfiguruj zasoby tak, aby (nie) były kompresowane za pomocą kompresora do-nothing
config.assets.compress = true
config.assets.js_compressor = NoCompression.new
config.assets.css_compressor = NoCompression.new
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-25 21:55:16
Under Rails 4 just commenting out the line
# config.assets.js_compressor = :uglifier
W config/environments/production.rb
zadziałało dla mnie. Wygląda na to, że domyślnym jest no compresson.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-06 14:54:30
Muszę również debugować mój js, więc wypróbowałem rozwiązanie ncherro. Problem polegał na tym, że nadal będzie rzucać
Grabie przerwane! nieznitializowana stała NocompresjiWięc dodałem klasę Nocompresji do produkcji.plik rb
# Compress JavaScripts and CSS
class NoCompression
def compress(string)
# do nothing
string
end
end
config.assets.compress = true
config.assets.js_compressor = NoCompression.new
config.assets.css_compressor = NoCompression.new
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-18 16:46:42
Również warte uwagi... Oprócz rozwiązania ncherro należy wykonać następujące czynności:
- Upewnij się, że umieścisz swój nowy moduł gdzieś, gdzie będzie domyślnie ładowany. Was lib / extras in my case.
- Uruchom
rake assets:clean
, aby wyczyścić istniejące zasoby. - Uruchom
rake assets:precompile
, Aby skompilować swoje zasoby przy użyciu nowego kompresora. - Uruchom ponownie aplikację... używam
touch tmp/restart.txt
Miłego debugowania;)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-18 19:54:37
Skomentuj brzydulę i dodaj config.assets.debug = true
. To mi pomogło.
-
Kompresja JavaScripts i CSS:
config.assets.js_compressor = :uglifier
-
Tryb debugowania wyłącza łączenie i wstępne przetwarzanie zasobów. Ale ta opcja może powodować znaczne opóźnienia w renderowaniu widoku z dużą liczbą złożonych zasobów:
config.assets.debug = true
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-17 20:14:51
Z Rails 4 na Heroku musisz zrobić dwie rzeczy. Najpierw, jak wspomniał @geekQ, skomentuj linię js_compressor w config/environments/production.rb
# config.assets.js_compressor = :uglifier
Po drugie, musisz rozważyć Pamięć podręczna potoku zasobów Heroku dla Rails 4. KAŻDY plik z tym samym MD5 co wersja w pamięci podręcznej nie będzie rekompilowany. Serwowana będzie poprzednia (ewentualnie skompresowana) wersja. Każdy edytowany plik będzie miał nowy MD5 i zostanie skompilowany.
Możesz również wyczyścić całą pamięć podręczną zasobów za pomocą Heroku Wtyczka Repo do paska narzędzi Heroku. Install that, then use the command
heroku repo:purge_cache
Zainstaluj nową wersję po wyczyszczeniu pamięci podręcznej, a wszystkie zasoby zostaną skompilowane.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-27 17:12:35
Musiałem zaktualizować Rails.application.config.assets.version
w config/initializers/assets.rb
, aby zmiany production.rb
weszły w życie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-08 00:59:56
Znajdź i skomentuj te wiersze w environments/production.rb
:
config.assets.js_compressor = ...
config.assets.css_compressor = ...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-20 19:02:26
Wygląda na to, że to mógł być błąd w Rails. Z dziennika zmian dla nadchodzącego rails 3.2.9, czy to jest to, na co się natknąłeś?
Respect config.digest = false for asset_path
Poprzednio wewnętrzne wartości asset_path respektowały tylko opcję: digest, ale ignorowały globalne ustawienie konfiguracji. To oznaczało, że config.digest = false nie może być używany w połączeniu z config.compile = false to poprawi zachowanie.
Http://weblog.rubyonrails.org/2012/10/29/ann-rails-3-2-9-rc1-has-been-released/
Myślisz, że to może mieć związek?
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-04 21:49:45