2011-10-04 31 views
9
Sadece 3.1 raylar adapte başladı

hiçbir parmak izi vardır, ben CoffeeScript ve küstahlığı yazmaya başladı ve her şey gelişiminde çalışıyor.Raylar 3.1 varlıklar üretim

sayfanın kaynak kodunda
<link href="/stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" /> 
    <script src="/javascripts/application.js" type="text/javascript"></script> 

, oluşturulan hiçbir karma kodudur var ve her iki varlık yönlendirme hatalar var: Ben üretimde sunucu çalıştırdığınızda, sadece almak

Routing Error 
No route matches [GET] "/stylesheets/application.css" 

Bunun sebebi nedir ? Bir şey yapmayı unuttum mu? ortamları/production.rb içinde

ayarları:

# Settings specified here will take precedence over those in config/application.rb 

    # Code is not reloaded between requests 
    config.cache_classes = true 

    # Full error reports are disabled and caching is turned on 
    config.consider_all_requests_local  = false 
    config.action_controller.perform_caching = true 

    # Disable Rails's static asset server (Apache or nginx will already do this) 
    config.serve_static_assets = false 

    # Compress JavaScripts and CSS 
    config.assets.compress = true 



    # Don't fallback to assets pipeline if a precompiled asset is missed 
    config.assets.compile = false 

    # Generate digests for assets URLs 
    config.assets.digest = true 

    config.active_support.deprecation = :notify 

Çok teşekkür ederim. Ben varlıkları kapsayacak şekilde aşağıdaki kullanıyorum düzenleri/application.html.erb içinde

:

fazla bilgi ekleyin

<%= stylesheet_link_tag "application" %> 
    <%= javascript_include_tag "application" %> 
    <%= csrf_meta_tags %> 

Ve çıkışı olmadan çalışır bundle exec rake assets:precompile denedim bir şey ve daha sonra rails s -e production çalıştırın, sorun devam ediyor.

Ayrıca config.assets.compile = true'u ayarlamaya ve rails s -e production'u çalıştırmaya çalıştım, sorun hala devam ediyor.

Lütfen

Yardım edin.

daha fazla bilgi. Ben derlenmiş js ve css kamu/aktifler klasöründe oluşturulur, ancak üretim ortamında, dosyalar karma kodu olmadan dahil olduğunu gördük.

Yardım.

Çözüm: Sadece tekrar Projemi kontrol ettim MongoDB desteklenmesi için application.rb düzenlerken zaman kök neden olduğunu buldular. Yanlışlıkla

require "sprockets/railtie" 

yorumsuz o zaman her şey yolunda yorumladı.

benim çaylak hata hatırlatmak için diğerleriyle bu bırakın.

Seni çok Richard ederiz. Cevabınız son anwser değil ama çok yardımcı oluyor, oyu gerçekten hak ediyor.

config.assets.enabled = true

etiketleri yazmak için doğru yardımcı yöntemler kullanıyor musunuz: Eğer application.rb içinde açık boru hattını var

cevap

3

Kontrol? Yardımcı yöntemler,/stil sayfaları ve/javascript yolunda olmamalıdır. (Erb içinde) Bunun gibi: ayarladığınız beri Ayrıca dağıtma processs bir parçası olarak ön derleme görevi çalıştırması gerekecek

 
javascript_include_tag "application" 
stylesheet_link_tag "application" 

, dosyaları oluşturmak için false derlemek.

asset pipeline guide, bunun capistrano ile nasıl ayarlanacağını gösterir.

+0

Teşekkürler Richard, ek bilgileri ana gönderiye ekliyorum. Bu özelliği elde etmek için capistrano kullanmalı mıyım? Sadece yerelde "raylar s -e üretimi" yapmaya çalışıyorum. – larryzhao

+0

Yerel iseniz, yerel olarak çalıştırmak zorundasınız. Bir üretim üretim ortamına nasıl dağıldığınıza göre sadece Capistrano görevine ihtiyacınız var. Uygulamayı 3.1.1.rc2'ye yükseltin ve görevi yeniden çalıştırın. Ben bunu düzeltmek için precompile görevinde bazı düzeltmeler olduğunu düşünüyorum. –

İlgili konular