/ / सिनात्रा त्रुटि के लिए पर्यावरण विन्यास - माणिक, विन्यास, सिनैट्रेट, विन्यास

सिनात्रा त्रुटि के लिए पर्यावरण विन्यास - रूबी, विन्यास, sinatra, विन्यास

मैं निम्नलिखित के साथ 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"