मैं निम्नलिखित के साथ config / environment.rb पर एक पर्यावरण विन्यास फाइल रखता हूं:
require "rubygems"
require "bundler"
Bundler.setup
require "sinatra"
require "sinatra/base"
require "sinatra/reloader"
और मेरे config.ru में मेरे पास है:
require File.expand_path("../config/environment", __FILE__)
require "slim"
require "coffee-script"
require "padrino-helpers"
require "sinatra/twitter-bootstrap"
मुझे त्रुटि मिल रही है:
Errno::ENOENT at /profile
No such file or directory - /Users/myusername/projects/accounts/config/views/profile.slim
और यह तभी दूर होता है जब मैं config / environment.rb फ़ाइल से और config.ru में "sinatra" की आवश्यकता को हटा देता हूं। क्या कोई समझा सकता है कि ऐसा क्यों होता है? मैंने मान लिया कि require File.expand_path("../config/environment", __FILE__)
बस config.ru में उस फ़ाइल से सभी की आवश्यकता शामिल होगी, लेकिन ऐसा नहीं लगता है। अब यह सोचता है कि मेरे विचार config फ़ोल्डर के अंदर रहते हैं।
मैंने यहाँ दिए गए सुझाव का पालन किया: मैं अपने Sinantra ऐप / पर्यावरण के तहत रेक कार्यों को कैसे चलाऊं? लेकिन फिर से, पर्यावरण में "साइनट्रा" को स्थानांतरित करने के लिए ऐप को तोड़ना पड़ता है।
उत्तर:
जवाब के लिए 2 № 1त्रुटि ऐसी दिखती है जैसे किसी प्रतिक्रिया को प्रस्तुत करते समय सिनात्रा को एक पतला टेम्पलेट नहीं मिल रहा है, क्योंकि यह एक की तलाश में है views
के तहत निर्देशिका config
निर्देशिका। डिफ़ॉल्ट रूप से सिनात्रा एप्लिकेशन फ़ाइल के सापेक्ष डीआईआर की तलाश करती है, जो (फिर डिफ़ॉल्ट रूप से) कॉल करने वाली फाइल है require "sinatra"
। आपके मामले में आवश्यकता रेखा अंदर है config/environment.rb
इसलिए सिनात्रा उस एप्लिकेशन फ़ाइल के रूप में व्यवहार करती है और उसके लिए देखती है views
इसके नीचे dir।
मुझे लगता है कि आपके पास एक वास्तविक एप्लिकेशन फ़ाइल है जिसे आपने नहीं दिखाया है। सबसे सरल उपाय शायद यही है स्पष्ट रूप से वहाँ में आवेदन फ़ाइल सेटिंग सेट करें:
set :app_file, __FILE__
अपने सेटअप के आधार पर आप चाहते हो सकता है प्रत्यक्ष निर्देशिका निर्दिष्ट करें बजाय:
set :views, "path/to/views"