rails 3.1.0 ActionView:: Template:: Error (application.css nie jest prekompilowany)
Zrobiłem podstawową aplikację rails z prostym kontrolerem stron z funkcją indeksu i po załadowaniu strony otrzymuję:
ActionView::Template::Error (application.css isn't precompiled):
2: <html>
3: <head>
4: <title>Demo</title>
5: <%= stylesheet_link_tag "application" %>
6: <%= javascript_include_tag "application" %>
7: <%= csrf_meta_tags %>
8: </head>
app/views/layouts/application.html.erb:5:in `_app_views_layouts_application_html_erb__43625033_88530400'
Gemfile
source 'http://rubygems.org'
gem 'rails', '3.1.0'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'sqlite3'
gem 'execjs'
gem 'therubyracer'
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails', " ~> 3.1.0"
gem 'coffee-rails', "~> 3.1.0"
gem 'uglifier'
end
gem 'jquery-rails'
# Use unicorn as the web server
# gem 'unicorn'
# Deploy with Capistrano
# gem 'capistrano'
# To use debugger
# gem 'ruby-debug19', :require => 'ruby-debug'
group :test do
# Pretty printed test output
gem 'turn', :require => false
end
14 answers
Domyślnie Rails zakłada, że Twoje pliki są wstępnie skompilowane w środowisku produkcyjnym, jeśli chcesz użyć kompilacji na żywo (kompilować swoje zasoby podczas wykonywania) w środowisku produkcyjnym musisz ustawić konfigurację .aktywa.skompiluj do true .
# config/environments/production.rb
...
config.assets.compile = true
...
Możesz użyć tej opcji, aby cofnąć się do zębatek, gdy używasz wstępnie skompilowanych zasobów, ale brakuje wstępnie skompilowanych plików.
Jeśli opcja config.assets.compile
jest ustawiona na false i brakuje wstępnie skompilowanych plików, otrzymasz "AssetNoPrecompiledError" określający nazwę brakującego pliku.
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
2011-12-16 06:13:14
Uzyskasz lepszą wydajność w produkcji, jeśli ustawisz config.aktywa.skompilować do false w produkcji.rb i wstępnie skompilować swoje aktywa. Możesz wstępnie skompilować to zadanie rake:
bundle exec rake assets:precompile
Jeśli używasz Capistrano, wersja 2.8.0 ma przepis, aby poradzić sobie z tym podczas wdrażania. Aby uzyskać więcej informacji, zapoznaj się z sekcją" w produkcji " w Przewodniku po rurociągu zasobów: http://guides.rubyonrails.org/asset_pipeline.html
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
2011-09-18 19:28:30
OK-miałem ten sam problem. Nie chciałem używać " config.aktywa.compile = true " - musiałem dodać wszystkie moje .pliki css do listy w config/environments / production.rb:
config.assets.precompile += %w( carts.css )
Potem musiałem utworzyć (a później usunąć) tmp/restart.txt
Konsekwentnie używałem helpera stylesheet_link_tag, więc znalazłem wszystkie dodatkowe pliki css, które musiałem dodać:
find . \( -type f -o -type l \) -exec grep stylesheet_link_tag {} /dev/null \;
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-04-18 20:32:34
Szybkie poprawki dla capistrano użytkownika jest umieszczenie tej linii do Capfile
# Uncomment if you are using Rails' asset pipeline
load 'deploy/assets'
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
2011-11-21 17:30:43
Dla wszystkich, którzy to czytają, ale nie mają problemu z application.css
, a zamiast tego ze swoimi niestandardowymi klasami CSS np. admin.css
, base.css
itd.
Roztwór należy stosować zgodnie z opisem
bundle exec rake assets:precompile
A w arkuszach stylów odniesienia po prostu odniesienia application.css
<%= stylesheet_link_tag "application", :media => "all" %>
Ponieważ assets pipeline wstępnie skompiluje wszystkie arkusze stylów w aplikacji.css. Dzieje się tak również w fazie deweloperskiej, więc używanie jakichkolwiek innych odniesień jest niewłaściwe podczas korzystania z assets pipeline.
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-12-29 19:08:39
Miałem dokładnie ten sam błąd w moim środowisku programistycznym. W końcu wszystko, co musiałem zrobić, aby to naprawić, to dodać:
config.assets.manifest = Rails.root.join("public/assets")
Do mojego config / environments / development.plik rb i go naprawił. Moja Ostateczna konfiguracja w rozwoju związana z zasobami wygląda następująco:
config.assets.compress = false
config.assets.precompile += %w[bootstrap-alerts.js] #Lots of other space separated files
config.assets.compile = false
config.assets.digest = true
config.assets.manifest = Rails.root.join("public/assets")
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
2011-12-16 13:40:28
Miałem również ten problem, w którym próba uruchomienia w produkcji bez prekompilacji nadal powodowałaby błędy nie-prekompilowane. Musiałem zmienić, która linia była komentowana aplikacja.rb:
# If you precompile assets before deploying to production, use this line
# Bundler.require(*Rails.groups(:assets => %w(development test)))
# If you want your assets lazily compiled in production, use this line
Bundler.require(:default, :assets, Rails.env)
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-01-11 00:57:17
Oto szybka poprawka:
Jeśli używasz capistrano zrób to dodaj to do swojego wdrożenia.rb:
after 'deploy:update_code' do
run "cd #{release_path}; RAILS_ENV=production rake assets:precompile"
end
Cap deploy
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
2011-11-17 18:18:13
Natknąłem się dziś na ten Komunikat o błędzie i chciałem opublikować rezolucję do mojego konkretnego przypadku. Okazuje się, że mój problem polegał na tym, że jeden z moich plików css brakowało nawiasu zamykającego i to powodowało, że plik nie został skompilowany. Może być trudniej to zauważyć, jeśli masz zautomatyzowany proces, który ustawia wszystko (w tym precompile zasobów) dla Twojego środowiska produkcyjnego.
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
2011-12-07 18:28:55
W końcu wszystko inne zawiodło...
Moim rozwiązaniem była zmiana pliku układu z
= stylesheet_link_tag "reset-min", 'application'
Do
= stylesheet_link_tag 'application'
I zadziałało! (Możesz umieścić plik reset w manifeście.)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-09-17 00:16:38
Kolejny sposób na naprawienie tego na Heroku: upewnij się, że Twój Rakefile jest zaangażowany i popchnięty.
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-20 16:35:42
Na serwerze heroku (readonly filesystem), Jeśli chcesz kompilacji runtime css (nie jest to zalecane, ale możesz to zrobić), upewnij się, że zrobiłeś ustawienia jak poniżej -
# inside config/application.rb
config.assets.enabled = true
config.assets.prefix = Rails.root.join('tmp/assets').to_s
# If you are using sass then keep gem outside of asset group
gem 'sass-rails', '3.1.4'
# inside config/environments/production.rb
config.assets.compile = 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
2012-04-23 10:36:11
Jeśli uważasz, że po wszystko dobre, ale nadal pecha, po prostu upewnij się, że / capistrano uruchomić touch tmp / restart.txt lub odpowiednik na końcu. Byłem na liście pechowców, ale teraz:)
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-02-07 06:47:50
Prawdopodobnie masz syntax error
w css, którego używasz.
Uruchom to polecenie
$ bundle exec rake assets:precompile RAILS_ENV=development --trace
To da wyjątek, naprawione, że i wszystko gotowe.
Dzięki
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-10-18 10:21:01