मैं अटक गया हूँ! एक्सडी मैं रेल परियोजना पर काम कर रहा हूं और मुझे सापेक्ष पथों का उपयोग करके अपनी संपत्ति तक पहुंचने में परेशानी हो रही है। मेरा एक दोस्त एचटीएमएल/सीएसएस पक्षों पर काम कर रहा है जबकि मैं नियंत्रकों और मॉडलों को संभालने में कामयाब रहा हूं। मेरे दोस्त ने हाल ही में मुझे निम्नलिखित की संरचना भी फ़ाइलों का एक बैच दिया:रेल संपत्तियों तक पहुंचने के लिए सापेक्ष पथ
app/assets/images/*.jpg
app/assets/stylesheets/*.css
app/assets/javascripts/*.js
app/assets/fonts/*.* (+some more css files in here)
मेरे एप्लिकेशन/विचारों/लेआउट निर्देशिका में, मैं एक लेआउट नामित final.html.erb जो अपने पूरे webapp के लिए प्रयोग किया जाता है है। मेरे पास 1 पेज (एचटीएमएल बॉडी कंटेंट) भी है जो मैं इस लेआउट के साथ अंतिम_पृष्ठ.html.एआरबी नामक एप/व्यू/पेजों में प्रस्तुत करने की कोशिश कर रहा हूं ... पृष्ठ को लोड करने के लिए आवश्यक रूटिंग जगह पर है; हालांकि, यह केवल final_page.html.erb (कोई चित्र, स्टाइल, या फोंट) के संदर्भ को लोड करता है। जब मैं कंसोल पर जाता हूं और "रेल सर्वर" टाइप करता हूं और लोकलहोस्ट पर जाता हूं: 3000, पेज दिखाता है ... नग्न लॉल। सांत्वना निम्नलिखित आउटपुट:
Started GET "/" for 127.0.0.1 at 2012-07-28 21:15:02 -0700
Connecting to database specified by database.yml
Processing by PagesController#final_page as HTML
Rendered pages/final_page.html.erb within layouts/final (8.4ms)
Completed 200 OK in 82ms (Views: 81.0ms | ActiveRecord: 0.0ms)
Started GET "/assets/stylesheets/style.css" for 127.0.0.1 at 2012-07-28 21:15:04 -0700
ActionController::RoutingError (No route matches [GET] "/assets/stylesheets/style.css"):
actionpack (3.2.6) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
actionpack (3.2.6) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
railties (3.2.6) lib/rails/rack/logger.rb:26:in `call_app'
railties (3.2.6) lib/rails/rack/logger.rb:16:in `call'
actionpack (3.2.6) lib/action_dispatch/middleware/request_id.rb:22:in `call'
rack (1.4.1) lib/rack/methodoverride.rb:21:in `call'
rack (1.4.1) lib/rack/runtime.rb:17:in `call'
activesupport (3.2.6) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
rack (1.4.1) lib/rack/lock.rb:15:in `call'
actionpack (3.2.6) lib/action_dispatch/middleware/static.rb:62:in `call'
railties (3.2.6) lib/rails/engine.rb:479:in `call'
railties (3.2.6) lib/rails/application.rb:220:in `call'
rack (1.4.1) lib/rack/content_length.rb:14:in `call'
railties (3.2.6) lib/rails/rack/log_tailer.rb:17:in `call'
rack (1.4.1) lib/rack/handler/webrick.rb:59:in `service'
/usr/lib/ruby/1.9.1/webrick/httpserver.rb:138:in `service'
/usr/lib/ruby/1.9.1/webrick/httpserver.rb:94:in `run'
/usr/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread'
Rendered /var/lib/gems/1.9.1/gems/actionpack-3.2.6/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (2.0ms)
मुझे लगता है कि समस्या यह है कि मैं संबंधित पथ का उपयोग कर फ़ाइलों तक पहुँचने की कोशिश कर रहा हूँ है। मेरे लेआउट फ़ाइल इस तरह दिखता है:
<!doctype html>
<html class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="viewport" content="width=device-width">
<title>:: Final ::</title>
<link rel="stylesheet" type="text/css" href="../../assets/stylesheets/style.css">
<link href="../../assets/stylesheets/desktop.css" rel="stylesheet" type="text/css" media="only screen and (min-width:769px) and (max-width:1000px)">
<script src="../../assets/javascripts/modernizr.js" type="text/javascript"></script>
</head>
<body>
<%= yield %>
</body>
</html>
इसके अलावा, मेरी final_page.html.erb फ़ाइल के मुख्य भाग में, मैं भी संबंधित पथ का उपयोग कर छवियों का उपयोग करने की ... इसलिए की तरह का प्रयास करें:
<img src="../../assets/images/mainImg.jpg" alt="img">
मेरे दोस्त ने इस एचटीएमएल में सबसे अधिक लिखा है, और उसके पास रेल के साथ काम करने का 0 अनुभव है।
से::
<link rel="stylesheet" type="text/css" href="../../assets/stylesheets/style.css">
करने के लिए:
<%= stylesheet_link_tag "application.css" %>
से:
<script src="../../assets/javascripts/modernizr.js" type="text/javascript"></script>
करने के लिए:
<%= javascript_include_tag "application.js" %>
01 मैं इतनी तरह की संपत्ति के लिए अनुरोध बदलने का फैसला किया
से:
<img src="../../assets/images/mainImg.jpg" alt="img">
करने के लिए:
<%= image_tag "mainImg.jpg" %>
यह कुछ हद तक छवियों भार के रूप में, मदद करता है, और स्टाइल की बहुत कम के माध्यम से आता है, हालांकि, यह किस तरह दिखने वाला है उससे दूर है। मैं सोच रहा हूँ यह सीएसएस खुद को फ़ाइलों के भीतर क्योंकि मेरे दोस्त रिश्तेदार कॉल करता है:
body {
background-image: url(../images/bg.jpg);
background-repeat: repeat;
}
मैं यूआरएल के साथ इन की जगह (<% = asset_path 'bg.jpg'%>) आदि की कोशिश की है ... लेकिन इसका कोई प्रभाव नहीं है। मैंने इतनी सारी चीजों की कोशिश की है, और इतनी सारी पोस्ट पढ़ी हैं। मैं सोच रहा हूं कि क्या कोई तरीका है कि रेल मुझे सापेक्ष पथों का उपयोग करने की अनुमति देगी। मैंने कोशिश की है:
config.assets.enabled = false
लेकिन इससे मदद नहीं मिलती है ... कृपया ... मैं क्या गलत कर रहा हूं? मुझे नहीं लगता कि मेरा दोस्त अपने काम के लिए सापेक्ष पथों का उपयोग करना बंद कर देगा, क्योंकि यह चीजें करता है।साइट रेल के बाहर अच्छी तरह से आग लगती है, लेकिन मुझे अपने वेबपैप के लिए रेल के साथ काम करने की ज़रूरत है। किसी भी सलाह की काफी सराहना की जाएगी। यह सब पढ़ने के लिए धैर्य रखने के लिए धन्यवाद।
पीएस मैं रूबी 1.9.3 का उपयोग कर रहा हूं, और रेल 3.2.6
यह वास्तव में का 50% हल समस्या एक्सडी बहुत बहुत धन्यवाद! हालांकि, स्टाइल अभी भी बंद है। मुझे यकीन नहीं है कि ऐसा इसलिए है क्योंकि सीएसएस फ़ाइलें सापेक्ष पथ का उपयोग कर रही हैं या? :(क्या मुझे सीएसएस फाइलों में जाना होगा और उन छवियों के पथों को बदलना होगा जो इसे संदर्भित करते हैं? जैसे: शरीर { पृष्ठभूमि-छवि: url (../ images/bg.jpg); पृष्ठभूमि-दोहराना: दोहराना ; } url (//ets/bg.jpg) से url (/assets/bg.jpg) से? – Orlin
ओह मेरे शब्द ... जिसने 100% काम किया ... मैंने यूआरएल (/ संपत्ति/bg.jpg) सीएसएस फाइलों में सभी छवि संदर्भों के लिए ठीक करें और यह चाल है !!! बहुत बहुत धन्यवाद! – Orlin
हां। धन्यवाद :) – Orlin