दिलचस्प पोस्ट
पायथन 3 के साथ पीपी कैसे स्थापित करें? ASP.NET MVC एक शब्दकोश में बाध्य है NTFS (Windows XP और Windows Vista) में अधिकतम फ़ाइल नाम की लंबाई? GetLocationOnScreen / getLocationInWindow से गलत निर्देशांक आईओएस 7 में वापस बटन बदलने से वापस नेविगेट करने के लिए कड़ी चोट को अक्षम करता है प्रस्तुत करने के लिए फार्म ताज़ा पृष्ठ रोकें जेफ्री चार्ट XYPLot में एकल बिंदु का आकार बदलना PHP अभिव्यक्ति <<< ईओबी स्लाइडिंग या अस्पष्टता प्रभाव के साथ सरल jQuery छवि स्लाइडर का निर्माण कैसे करें? आरएसपीसी बनाम क्यूकरी (आरएसपीईसी कहानियां) क्या मैं एक फाइल डिस्क्रिप्टर को लिनक्स पर किसी अन्य प्रक्रिया में साझा कर सकता हूं या वे प्रक्रिया के लिए स्थानीय हैं? एक सरल वेब सर्वर के रूप में node.js का उपयोग करना क्या आर में बोली-जैसी ऑपरेटर हैं जैसे कि पर्ल के qw ()? पांडास डेटा फ्रेम में एक स्तंभ को कैसे फैलाना सी # में एक अच्छा थ्रेडसेफ एकलटन सामान्य टेम्पलेट पैटर्न क्या है

रेल परिसंपत्ति पाइपलाइन के साथ फोंट का उपयोग करना

मेरे पास ऐसे कुछ फ़ॉन्ट हैं जिन्हें मेरी Scss फ़ाइल में कॉन्फ़िगर किया गया है:

@font-face { font-family: 'Icomoon'; src: asset-url('icoMoon.eot?#iefix', font) format('embedded-opentype'), asset-url('icoMoon.woff', font) format('woff'), asset-url('icoMoon.ttf', font) format('truetype'), asset-url('icoMoon.svg#Icomoon', font) format('svg'); } 

वास्तविक फ़ॉन्ट फ़ाइल / app / assets / fonts /

मैंने अपने application.rb फ़ाइल में config.assets.paths << Rails.root.join("app", "assets", "fonts") जोड़ config.assets.paths << Rails.root.join("app", "assets", "fonts")

और संकलित सीएसएस स्रोत इस प्रकार है:

 @font-face { font-family: 'Icomoon'; src: url(/assets/icoMoon.eot?#iefix) format("embedded-opentype"), url(/assets/icoMoon.woff) format("woff"), url(/assets/icoMoon.ttf) format("truetype"), url(/assets/icoMoon.svg#Icomoon) format("svg"); } 

लेकिन जब मैं ऐप चलाता हूं, तो फाँट फाइलें नहीं मिल रही हैं I लॉग्स:

127.0.0.1 के लिए "/assets/icoMoon.ttf" प्राप्त करें 2012-06-05 23:21:17 +0100 सेवा की गई संपत्ति /icoMoon.ttf – 404 नहीं मिला (13ms)

परिसंपत्ति पाइपलाइन फोंट फ़ाइलों को सिर्फ / परिसंपत्तियों में क्यों नहीं समतल कर रही है?

किसी भी विचार लोग?

नमस्कार, नील

अधिक जानकारी:

जब रेल की परिसंपत्तियों के पथ और संपत्ति के लिए सांत्वना की जांच करते हैं, तो मुझे निम्नलिखित मिलते हैं:

 1.9.2p320 :001 > y Rails.application.config.assets.precompile --- - !ruby/object:Proc {} - !ruby/regexp /(?:\/|\\|\A)application\.(css|js)$/ - .svg - .eot - .woff - .ttf => nil 1.9.2p320 :002 > y Rails.application.config.assets.paths --- - /Users/neiltonge/code/neiltonge/app/assets/fonts - /Users/neiltonge/code/neiltonge/app/assets/images - /Users/neiltonge/code/neiltonge/app/assets/javascripts - /Users/neiltonge/code/neiltonge/app/assets/stylesheets - /Users/neiltonge/code/neiltonge/vendor/assets/images - /Users/neiltonge/code/neiltonge/vendor/assets/javascripts - /Users/neiltonge/code/neiltonge/vendor/assets/stylesheets - /Users/neiltonge/.rvm/gems/ruby-1.9.2-p320@neiltonge/gems/jquery-rails-2.0.0/vendor/assets/javascripts - /Users/neiltonge/.rvm/gems/ruby-1.9.2-p320@neiltonge/gems/coffee-rails-3.2.1/lib/assets/javascripts - /Users/neiltonge/.rvm/gems/ruby-1.9.2-p320@neiltonge/gems/bourbon-1.3.0/app/assets/stylesheets - !ruby/object:Pathname path: /Users/neiltonge/code/neiltonge/app/assets/fonts => nil 

वेब के समाधान से एकत्रित समाधान "रेल परिसंपत्ति पाइपलाइन के साथ फोंट का उपयोग करना"

  1. यदि आप रेल> 3.1.0 और <4 पर हैं, तो आप फ़ोल्डर्स app/assets/fonts , lib/assets/fonts या vendor/assets/fonts में बस अपने फोंट रख सकते vendor/assets/fonts

    यदि आप रेल 4+ पर हैं, तो आप केवल फ़ोल्डर app/assets/fonts में अपने फोंट रख सकते हैं

    यदि आप उन्हें इन नामित फ़ोल्डर के बाहर रखना चाहते हैं, तो आपको निम्नलिखित कॉन्फ़िगरेशन को जोड़ना होगा:

    config.assets.precompile << /\.(?:svg|eot|woff|ttf)\z/

    यदि आप रेल 4.2+ पर हैं, तो यह फ़ाइल config/initializers/assets.rb में इस कॉन्फ़िगरेशन को जोड़ने की सिफारिश की गई है।

    यदि आप नहीं हैं, तो इसे application.rb या production.rb फ़ाइल में जोड़ें।

  2. अपने सीएसएस में अपने फ़ॉन्ट की घोषणा करें ताकि:

     @font-face { font-family: 'Icomoon'; src:url('icomoon.eot'); src:url('icomoon.eot?#iefix') format('embedded-opentype'), url('icomoon.svg#icomoon') format('svg'), url('icomoon.woff') format('woff'), url('icomoon.ttf') format('truetype'); font-weight: normal; font-style: normal; } 

    सुनिश्चित करें कि घोषणा के यूआरएल भाग की तरह फ़ॉन्ट का नाम ठीक है। कैपिटल अक्षरों और विराम चिह्न के निशान एक अंतर बनाते हैं। इसलिए इस मामले में फ़ॉन्ट का नाम icomoon होना चाहिए।

  3. यदि आप पैन 3.1.0+ (यानी आपकी सीएसएस फाइल .scss या .scss एक्सटेंशन है) के साथ Sass या Less का उपयोग कर रहे हैं, तो .scss url(...) पर फ़ॉन्ट घोषणा में url(...) को बदलें ।

    यदि आप नहीं हैं, तो आपकी सीएसएस फ़ाइल का एक्सटेंशन .css.erb होना चाहिए और फ़ॉन्ट घोषणा को url('<%= asset_path(...) %>') बदलना चाहिए url('<%= asset_path(...) %>')

    इसके अतिरिक्त, यदि आप रेल 3.2.1+ का उपयोग कर रहे हैं, तो आप font_path(...) बजाय font_path(...) उपयोग कर सकते हैं। यह सहायक वास्तव में एक ही बात करता है, लेकिन यह सिर्फ थोड़ा और स्पष्ट है।

  4. अंत में, अपने सीएसएस में अपने फ़ॉन्ट का उपयोग करें जैसे आपने font-family भाग में इसे घोषित किया है चूंकि इसे पूंजीकृत घोषित किया गया था, इसलिए आप इसे इस तरह से उपयोग कर सकते हैं:

     font-family: 'Icomoon'; 

अब यहाँ एक मोड़ है:

आपको app/assets/fonts/ फोंट में सभी फोंट रखना चाहिए- क्योंकि उन्हें मूल रूप से स्टेजींग और प्रोडक्शन में प्रीकंपल किया जाएगा- वे अपने लॉक के लिए धक्का दे दिए जाएंगे

vendor/assets में रखी गई फ़ॉन्ट फ़ाइलों को डिफ़ॉल्ट रूप से स्टेजींग या उत्पादन पर पूर्वकम्पल नहीं किया जाएगा- वे हेरोकी पर विफल हो जाएंगे । स्रोत!

– @प्लापीयर, विचारबॉट / बोर्नबोन

मुझे दृढ़ता से विश्वास है कि vendor/assets/fonts फोंट में vendor/assets/fonts डालकर उन्हें app/assets/fonts में डाल देने से बहुत अधिक समझ में आता है। अतिरिक्त विन्यास के इन 2 लाइनों के साथ यह मेरे लिए अच्छी तरह से काम किया है (रेल 4 पर):

 app.config.assets.paths << Rails.root.join('vendor', 'assets', 'fonts') app.config.assets.precompile << /\.(?:svg|eot|woff|ttf)$/ 

– @जहल्डन, विचारबॉट / बोर्नबोन

मैंने यह rails 4.0.0 पर भी परीक्षण किया है। असल में अंतिम एक पंक्ति vendor फ़ोल्डर से फोंट को सुरक्षित रूप से पूर्वकंपल करने के लिए पर्याप्त है। यह पता लगाने के लिए कुछ घंटों के दौरान लिया आशा है कि यह किसी को मदद करता है

यदि आप अपने फोंट को चारों ओर ले जाने का नज़र रखना नहीं चाहते हैं:

 # Adding Webfonts to the Asset Pipeline config.assets.precompile << Proc.new { |path| if path =~ /\.(eot|svg|ttf|woff)\z/ true end } 

आपको अपने @ फॉन्ट-फेस ब्लॉक में font-url का उपयोग करने की आवश्यकता नहीं है, url नहीं

 @font-face { font-family: 'Inconsolata'; src:font-url('Inconsolata-Regular.ttf') format('truetype'); font-weight: normal; font-style: normal; } 

साथ ही साथ यह लाइन application.rb में, जैसा आपने उल्लेख किया है ( app/assets/fonts

 config.assets.paths << Rails.root.join("app", "assets", "fonts") 

परिसंपत्ति पाइपलाइन में फोंट का उपयोग करने के लिए यहां मेरा दृष्टिकोण:

1) app/assets/fonts/ अंतर्गत अपनी सभी फ़ॉन्ट फाइल रखो, वास्तव में आप इसे fonts फ़ोल्डर नाम के तहत नहीं लगा सकते हैं। आप किसी भी सबफ़ोल्डर नाम को पसंद कर सकते हैं। जैसे app/assets/abc या app/assets/anotherfonts लेकिन मैं अत्यधिक अनुशंसा करता हूं कि आप इसे बेहतर app/assets/fonts/ बेहतर फ़ोल्डर संरचना के लिए रख दें।

2) अपने sass फ़ाइल से, इस तरह से अपने फ़ॉन्ट संपत्तियों का अनुरोध करने के लिए sass सहायक font-path का उपयोग कर

 @font-face { font-family: 'FontAwesome'; src: url(font-path('fontawesome-webfont.eot') + '?v=4.4.0'); src: url(font-path('fontawesome-webfont.eot') + '?#iefix&v=4.4.0') format('embedded-opentype'), url(font-path('fontawesome-webfont.woff2') + '?v=4.4.0') format('woff2'), url(font-path('fontawesome-webfont.woff') + '?v=4.4.0') format('woff'), url(font-path('fontawesome-webfont.ttf') + '?v=4.4.0') format('truetype'), url(font-path('fontawesome-webfont.svg') + '?v=4.4.0#fontawesomeregular') format('svg'); font-weight: normal; font-style: normal; } 

3) bundle exec rake assets:precompile चलाएं bundle exec rake assets:precompile अपनी स्थानीय मशीन से bundle exec rake assets:precompile और अपने application.css परिणाम देखें। आपको ऐसा कुछ देखना चाहिए:

 @font-face { font-family: 'FontAwesome'; src: url("/assets/fontawesome-webfont-d4f5a99224154f2a808e42a441ddc9248ffe78b7a4083684ce159270b30b912a.eot" "?v=4.4.0"); src: url("/assets/fontawesome-webfont-d4f5a99224154f2a808e42a441ddc9248ffe78b7a4083684ce159270b30b912a.eot" "?#iefix&v=4.4.0") format("embedded-opentype"), url("/assets/fontawesome-webfont-3c4a1bb7ce3234407184f0d80cc4dec075e4ad616b44dcc5778e1cfb1bc24019.woff2" "?v=4.4.0") format("woff2"), url("/assets/fontawesome-webfont-a7c7e4930090e038a280fd61d88f0dc03dad4aeaedbd8c9be3dd9aa4c3b6f8d1.woff" "?v=4.4.0") format("woff"), url("/assets/fontawesome-webfont-1b7f3de49d68b01f415574ebb82e6110a1d09cda2071ad8451bdb5124131a292.ttf" "?v=4.4.0") format("truetype"), url("/assets/fontawesome-webfont-7414288c272f6cc10304aa18e89bf24fb30f40afd644623f425c2c3d71fbe06a.svg" "?v=4.4.0#fontawesomeregular") format("svg"); font-weight: normal; font-style: normal; } 

यदि आप जानना चाहते हैं कि परिसंपत्ति की पाइपलाइन कैसे काम करती है, तो आप निम्न सरल गाइड पर जा सकते हैं: https://designcode.commandrun.com/rails-asset-pipeline-simple-guide-830e2e666f6c#.6lejlayk2

मुझे Rails 4.2 (रूबी 2.2.3 के साथ) पर यह समस्या हो रही थी और फॉंट भयानक _paths.scss आंशिक को संपादित करने के लिए $fa-font-path fa- फ़ॉन्ट- $fa-font-path संदर्भ को हटाने और एक अग्रणी फ़ॉरवर्ड स्लैश को निकालना था। निम्न टूट गया था:

 @font-face { font-family: 'FontAwesome'; src: font-url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); src: font-url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), font-url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), font-url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), font-url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), font-url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); font-weight: normal; font-style: normal; } 

और निम्नलिखित काम करता है:

 @font-face { font-family: 'FontAwesome'; src: font-url('fontawesome-webfont.eot?v=#{$fa-version}'); src: font-url('fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), font-url('fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), font-url('fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), font-url('fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), font-url('fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); font-weight: normal; font-style: normal; } 

विकल्प वैकल्पिक रूप से फॉर्वर्ड स्लैश को हटाने के लिए इंटरपोलेट किए गए $fa-font-path बाद होगा और फिर $fa-font-path को खाली स्ट्रैश या उप-डायरेक्टरी के रूप में आगे स्लैश (आवश्यकतानुसार) के रूप में परिभाषित करेगा।

संपत्तियों को पुनः कंपाइल करने और आवश्यकतानुसार आपके सर्वर को पुन: प्रारंभ करने के लिए याद रखें। उदाहरण के लिए, एक यात्री सेटअप पर:

 prompt> rake assets:clean; rake assets:clobber prompt> RAILS_ENV=production RAILS_GROUPS=assets rake assets:precompile prompt> service passenger restart 

फिर अपने ब्राउज़र को पुनः लोड करें।

मैं पटरियों 4.2 का उपयोग कर रहा हूं, और फूटेबल आइकनों को दिखाने के लिए नहीं मिल सका। ढह गई पंक्तियों (+) और छोटे छंटनी वाले तीरों के बजाय छोटे बक्से दिख रहे थे यहां जानकारी का अध्ययन करने के बाद, मैंने अपने कोड में एक साधारण परिवर्तन किया: सीएसएस में फ़ॉन्ट निर्देशिका को हटा दें। यही है, इस तरह सभी सीएसएस प्रविष्टियों को बदलें:

 src:url('fonts/footable.eot'); 

इस तरह दिखने के लिए:

 src:url('footable.eot'); 

इसने काम कर दिया। मुझे लगता है कि रेल 4.2 पहले से ही फ़ॉन्ट निर्देशिका मानता है, इसलिए इसे सीएसएस कोड में फिर से निर्दिष्ट करना फ़ॉन्ट फ़ाइलों को नहीं मिलती। उम्मीद है की यह मदद करेगा।

जब मैंने हाल ही में रेल 4 में अपने रेल 3 ऐप को अपग्रेड किया था, तो मेरे पास एक समान समस्या थी रेल फोर + 4 के रूप में मेरे फोंट ठीक से काम नहीं कर रहे थे, हमें केवल फोंट को app/assets/fonts निर्देशिका में रखने की इजाजत है। लेकिन मेरे रेल 3 एप में एक अलग फ़ॉन्ट संगठन था। इसलिए मुझे ऐप को कॉन्फ़िगर करना पड़ा, ताकि यह अभी भी रेल 4 ++ के साथ काम करता हो, मेरे फोंट को app/assets/fonts अलावा किसी अन्य स्थान पर app/assets/fonts मैंने कई समाधानों की कोशिश की है लेकिन मुझे गैर-बेवकूफ़-डाइजेस्ट-संपत्ति मणि मिल जाने के बाद, यह सिर्फ इतना आसान बना दिया

अपने Gemfile में निम्न पंक्ति जोड़कर इस मणि जोड़ें:

 gem 'non-stupid-digest-assets' 

तो भागो:

 bundle install 

और अंत में अपनी विन्यास / initializers / non_digest_assets.rb फ़ाइल में निम्नलिखित पंक्ति जोड़ें:

 NonStupidDigestAssets.whitelist = [ /\.(?:svg|eot|woff|ttf)$/ ] 

बस। इसने मेरी समस्या को ठीक से हल किया आशा है कि यह ऐसे किसी व्यक्ति को सहायता करता है जो मेरे जैसी समान समस्या का सामना करते हैं

यदि आपके पास scaffolds.css.scss नामक फाइल है, तो एक मौका है जो आप अन्य फ़ाइलों में जो भी कस्टम काम कर रहे हैं उसे ओवरराइड कर रहे हैं मैंने उस फाइल की टिप्पणी की और अचानक सब कुछ काम किया। अगर उस फाइल में कुछ महत्वपूर्ण नहीं है, तो आप इसे हटाना भी कर सकते हैं!

मेरे मामले में मूल प्रश्न सरली url सीएसएस संपत्ति के बजाय परिणामों के बिना asset-url का उपयोग कर रहा था। asset-url का इस्तेमाल करके हेरोकी में मेरे लिए काम करना बंद हो गया। इसके अलावा किसी भी सबफ़ोल्डर या किसी अन्य कॉन्फ़िगरेशन को जोड़ने के बिना /assets/fonts फ़ोल्डर में फोंट सेटिंग और asset-url('font.eot') को asset-url('font.eot') करना।

बस अपने फोंट को एप / आस्तियों / फोंट फ़ोल्डर में रखें और एपोलॉउड पथ को सेट करें जब ऐप को आवेदन पत्र में कोड लिखने का उपयोग करना शुरू कर दें। आरबी

config.assets.paths << Rails.root.join ("एप", "संपत्ति", "फोंट") और

तो सीएसएस में निम्नलिखित कोड का उपयोग करें।

@फॉन्ट फ़ेस {

  font-family: 'icomoon'; src: asset-url('icomoon.eot'); src: asset-url('icomoon.eot') format('embedded-opentype'), asset-url('icomoon.woff') format('woff'), asset-url('icomoon.ttf') format('truetype'), asset-url('icomoon.svg') format('svg'); font-weight: normal; font-style: normal; 

}

कोशिश करो।

धन्यवाद