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ą.

Myślałem, że mój oryginalny {[0] } powinien zadziałać. Jakieś pomysły, co zrobiłem źle?
Author: Jack R-G, 2012-03-13

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
 49
Author: ncherro,
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.

 23
Author: geekQ,
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 Nocompresji
Wię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
 11
Author: user2576663,
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:

  1. Upewnij się, że umieścisz swój nowy moduł gdzieś, gdzie będzie domyślnie ładowany. Was lib / extras in my case.
  2. Uruchom rake assets:clean, aby wyczyścić istniejące zasoby.
  3. Uruchom rake assets:precompile, Aby skompilować swoje zasoby przy użyciu nowego kompresora.
  4. Uruchom ponownie aplikację... używam touch tmp/restart.txt

Miłego debugowania;)

 6
Author: whyvez,
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

 6
Author: user3630729,
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.

 2
Author: dodgio,
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.

 1
Author: averageradical,
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 = ...
 1
Author: Manish Singh,
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?

 0
Author: jrochkind,
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