2013-12-14 13 views
13

पर नहीं यदि आप यहां मेरे ऐप को देखते हैं: http://quiet-brushlands-5712.herokuapp.com/, बटन के करीब एक आइकन, एक ग्लाइफ़िकॉन है। लेकिन यह उसकेोकू पर नहीं दिख रहा है। स्थानीय स्तर पर यह के रूप में अच्छी तरह से इस तरह दिखाने:ग्लाइफ़िकॉन स्थानीय रूप से काम करता है लेकिन हेरोकू

enter image description here

मैं यहाँ Using boostrap.css file in Rails production/heroku w/o LESS or SASS से और गूगल में अन्य लिंक से "समाधान" की कोशिश की। मुझे हेरोकू पर दिखाने के लिए ग्लिफ की भी आवश्यकता है। कोई मदद?

मैंने मैन्युअल रूप से ट्विटर बूटस्ट्रैप डाउनलोड नहीं किया है, मैं बस एक मणि का उपयोग कर रहा हूं। अगर यह मदद करता है

GET http://quiet-brushlands-5712.herokuapp.com/assets/glyphicons-halflings.png 404 (Not Found)

मेरे Gemfile: मेरी JavaScript कंसोल में मैं इस राशि

source 'https://rubygems.org' 

gem 'rails', '4.0.2' 
gem 'sass-rails', '~> 4.0.0' 
gem 'uglifier', '>= 1.3.0' 
gem 'coffee-rails', '~> 4.0.0' 
gem 'jquery-rails', '3.0.4' 
gem 'turbolinks', '2.0.0' 
gem 'jbuilder', '~> 1.2' 
gem 'bootstrap-sass', '2.1' 
gem 'jquery-ui-rails', '4.1.0' 
gem 'pg' 
gem 'font-awesome-rails', '4.0.3.0' 

group :doc do 
    # bundle exec rake doc:rails generates the API under doc/api. 
    gem 'sdoc', require: false 
end 

group :development, :test do 
    gem 'rspec-rails', '2.11.0' 
    gem 'guard-rspec', '1.2.1' 
    gem 'guard-spork', '1.2.0' 
    gem 'childprocess', '0.3.6' 
    gem 'spork', '0.9.2' 
end 

group :production do 
    gem 'rails_12factor' 
end 
+0

उपयोग करने के लिए धक्का नहीं करना चाहते हैं क्या आपने 404 के लिए अपने ब्राउज़र के विकास टूल में देखा था, जो संभवतया हो रहा है जब यह आइकन लाने की कोशिश करता है? वास्तविक के साथ आइकन के अपेक्षित स्थान की तुलना करें। – Vidya

+0

मेरे जेएस कंसोल में मुझे 'मिल गया है http://mighty-brushlands-6367.herokuapp.com/assets/glyphicons-halflings.png 404 (नहीं मिला)' और मुझे यकीन नहीं है कि उस कारण को कैसे ठीक किया जाए मेरे पास नहीं है विचार जहां वह फ़ाइल स्थानीय रूप से स्थित है। – Emanuel

+1

हेरोोकू पर [रेल एसेट पाइपलाइन] (https://devcenter.heroku.com/articles/rails-asset-pipeline) को कॉन्फ़िगर करने का समय हो सकता है। – Vidya

उत्तर

35

समाधान config/environments/production.rb फ़ाइल में config.assets.compile = true को config.assets.compile = false बदलने के लिए किया गया था।

+1

यह समाधान मेरे लिए पूरी तरह से – ganeshran

+0

+1 काम करता है, धन्यवाद। मुझे मैन्युअल रूप से मैनोकू को पुनरारंभ करने की भी आवश्यकता नहीं थी, यह स्वचालित रूप से ऐसा हुआ। –

+0

मुझे वास्तव में समझ में नहीं आता कि इसे दो बार क्यों बदला जाना है। लेकिन यह मेरे लिए काम नहीं करता है। – Sucrenoir

2
विद्या की टिप्पणी करने के लिए

इसके अलावा, यह शायद अपनी संपत्ति पाइपलाइन समस्या

है कि होने वाला है

हालांकि मैं इसके लिए बूटस्ट्रैप के विनिर्देशों से परिचित नहीं हूं, फिर भी हेरोकू की संपत्ति पाइपलाइन के साथ एक बड़ा मुद्दा है, क्योंकि इसे प्रभावी ढंग से उपयोग करने से पहले इसे पहले से संकलित किया जाना चाहिए


एसेट फिंगरप्रिंटिंग

Heroku क्योंकि asset fingerprinting

का यह वह जगह है जहाँ अपनी संपत्ति एक हैश उनके फ़ाइल नाम के अंत के लिए आवेदन किया, image-12sdafdsafkj223423jnjfadsnfsad.png या इसी तरह की तरह होगा अपनी संपत्ति precompile करने की आवश्यकता है । इसका कारण स्पष्ट रूप से संपत्तियों को अद्वितीय रखने के लिए है या कुछ

यदि आप follow the link provided by Vidya, तो आप पाएंगे कि हेरोोकू रेलवे सीएमडी का उपयोग करके आपकी संपत्ति को प्रीकंपाइल करने के लिए संकेत देता है। क्या यह आपको बता नहीं है कि इस वसीयत गंदगी अपनी छवियों को जब तक वे डायनामिक रूप से प्राप्त होने के बाद


एससीएसएस

जैसा कि बताया जा रहा है, के बारे में मैं यह कैसे लागू होता है यकीन नहीं है विशेष रूप से बूटस्ट्रैप, लेकिन Heroku की परिसंपत्ति पाइपलाइन सामान के साथ, आप यह सुनिश्चित करने के लिए अपनी छवियों को गतिशील रास्तों

की तरह रेल अपने आप में, एससीएसएस आप asset_path या image_path उपयोग करने के लिए एक गतिशील लिंक बनाने के लिए अनुमति देता है का उपयोग करते हुए आवंटित कर रहे हैं की जरूरत है। अपनी समस्या को ठीक करने के लिए आपको यही करना है। यहाँ कुछ कोड हम उपयोग करते हैं, जो Heroku पर काम करता है:

.navigation_bar { 
     z-index: 200; 
     position: relative; 
     background: asset_url('nav_bar/bg.png') repeat-x top; 
} 
0

में (मत भूलना और उसके बाद के लिए प्रतिबद्ध और Heroku को पुश करने के लिए) config/environments/production.rb

बदलें config.assets.compile = false को config.assets.compile = true

मेरे लिए काम किया ...

0

क्योंकि जब मैं खोज रहा था तो मैं इस जवाब में आया था, मुझे लगता है कि मुझे यहां रखना चाहिए कि जिस समाधान में मैं आया था उसे शामिल करना था बूटस्ट्रैप से पहले "बूटस्ट्रैप-स्पॉकेट्स" में आयात करें। यह https://github.com/twbs/bootstrap-sass/issues/653 पर प्रलेखित है।

मुझे एहसास है कि सवाल बूटस्ट्रैप-एसएएस 3.2+ का उपयोग नहीं कर रहा है, लेकिन मुझे लगता है कि यह किसी की मदद कर सकता है।

13

समाधान जो संकलन फॉलबैक (रेल 4.1 पर परीक्षण) का उपयोग नहीं करता है: अपनी स्कैस फ़ाइलों में, बूटस्ट्रैप से पहले बूटस्ट्रैप-स्पॉकेट आयात करें।

@import "bootstrap-sprockets"; 
@import "bootstrap"; 
+1

एक आकर्षण की तरह काम करता है, धन्यवाद !! – krpec

+1

मैं एसएसएस का उपयोग नहीं कर रहा हूं। अगर मैं सिर्फ सादा सीएसएस का उपयोग कर रहा हूं तो मैं इसे कैसे हल करूं? – aandis

+0

यह मेरे लिए काम नहीं करता है –

1

आप अपने उत्पादन वातावरण में सच करने के लिए अपने config.assets.compile स्थापित करने के लिए (जो आप शायद नहीं बेहतर प्रदर्शन के लिए चाहिए), यदि आप स्वयं अपनी संपत्ति precompile कर सकते हैं इससे पहले कि आप Heroku rake assets:precompile RAILS_ENV=production

संबंधित मुद्दे