Eu criei um aplicativo básico de trilhos com um simples controlador de páginas com uma função de índice e quando carrego a página, recebo:
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
ruby-on-rails
asset-pipeline
Chris Muench
fonte
fonte
Respostas:
Por padrão, o Rails supõe que você tenha seus arquivos pré-compilados no ambiente de produção, se desejar usar a compilação ao vivo (compilar seus ativos durante o tempo de execução) na produção, você deverá configurar o config.assets.compile como true .
Você pode usar esta opção para fazer o fallback para Sprockets quando estiver usando ativos pré-compilados, mas houver arquivos pré-compilados ausentes.
Se a
config.assets.compile
opção estiver configurada como false e houver arquivos pré-compilados ausentes, você receberá um "AssetNoPrecompiledError" indicando o nome do arquivo ausente.fonte
application.rb
. Adicionar a / editapplication.rb
:config.assets.precompile += %w( first.css second.js )
. Agora esses arquivos serão compilados também. Não adicione todos os arquivos se você usá-los apenas em rodas dentadasrequire
, mas só se você incluí-los com<link>
/<script>
Você obterá melhor desempenho na produção se definir config.assets.compile como false em production.rb e pré-compilar seus ativos. Você pode pré-compilar com esta tarefa de rake:
Se você estiver usando o Capistrano, a versão 2.8.0 possui uma receita para lidar com isso no momento da implantação. Para obter mais informações, consulte a seção "Em produção" do Guia do pipeline de ativos: http://guides.rubyonrails.org/asset_pipeline.html
fonte
rake -T
oubundle exec rake -T
é seu amigo.bundle exec rake ...
garantirá que você esteja carregando o rake certo e as dependências associadas ao seu aplicativo. Se você não estiver usando o bundler, você apenas executariarake ...
.OK - eu tive o mesmo problema. Eu não queria usar "config.assets.compile = true" - tive que adicionar todos os meus arquivos .css à lista em config / environment / production.rb:
Então eu tive que criar (e depois excluir) tmp / restart.txt
Eu sempre usei o auxiliar stylesheet_link_tag, então encontrei todos os arquivos css extras que eu precisava adicionar:
fonte
Uma solução rápida para o usuário capistrano é colocar esta linha no Capfile
fonte
Para todos aqueles que estão lendo isso, mas não têm problemas
application.css
com suas classes CSS personalizadas, por exemploadmin.css
,base.css
etc.A solução é usar como mencionado
E nas referências de folhas de estilo apenas referência
application.css
Como o pipeline de ativos pré-compila todas as suas folhas de estilo em application.css. Isso também acontece no desenvolvimento, portanto, o uso de outras referências é errado ao usar o pipeline de ativos.
fonte
Eu estava tendo exatamente o mesmo erro no meu ambiente de desenvolvimento. No final, tudo o que eu precisava fazer para corrigi-lo foi adicionar:
para o meu arquivo config / environment / development.rb e o corrigiu. Minha configuração final no desenvolvimento relacionada a ativos é semelhante a:
fonte
Eu também tive esse problema, onde tentar executar a produção sem pré-compilar ainda geraria erros não pré-compilados. Eu tive que mudar qual linha foi comentada application.rb:
fonte
config/application.rb
Aqui está a solução rápida:
Se você estiver usando capistrano, adicione isso ao seu deploy.rb:
cap deploy
fonte
Encontrei esta mensagem de erro hoje e queria postar a resolução em meu caso particular. Acontece que meu problema era que um dos meus arquivos css estava sem uma chave de fechamento e isso fazia com que o arquivo não fosse compilado. Pode ser mais difícil perceber isso se você tiver um processo automatizado que configure tudo (incluindo a pré-compilação de ativos) para o seu ambiente de produção.
fonte
Afinal, tudo falhou ...
Minha solução foi alterar o arquivo de layout de
para
E funcionou! (Você pode colocar o arquivo de redefinição dentro do manifesto.)
fonte
Apenas outra maneira de corrigir isso no Heroku: Verifique se o seu Rakefile está comprometido e pressionado.
fonte
No servidor heroku (sistema de arquivos somente leitura), se você quiser a compilação em tempo de execução do css (não é recomendado, mas você pode fazê-lo), verifique se você fez as configurações abaixo -
fonte
se você acha que seguiu tudo de bom, mas ainda assim azarado, certifique-se de executar o comando / capistrano tocando em tmp / restart.txt ou equivalente no final. Eu estava na lista de azar, mas agora :)
fonte
Você provavelmente tem um
syntax error
no css que está usando.Execute este comando
Isso dará a exceção, corrigiu isso e tudo está pronto.
obrigado
fonte