DEBUG = মিথ্যা সেট করার ফলে 500 টি ত্রুটি হয়


298

একবার ভাবলাম পরিবর্তন DEBUG = False, আমার সাইট 500 (wsgi & manage.py runserver ব্যবহার করে) উত্পন্ন করবে, এবং অ্যাপাচি ত্রুটি লগ কখনও ভ্রান্ত তথ্য এবং এটি সাধারণত চালানো হবে যখন আমি পরিবর্তন debugকরতে True

আমি জ্যাঙ্গো 1.5 এবং পাইথন 2.7.3 ব্যবহার করছি এখানে অ্যাপাচি অ্যাক্সেস লগ এবং অ্যাপাচে ত্রুটি লগের কোনও লগ ছাড়াই

www.beta800.net:80 222.247.56.11 - - [28/Feb/2013:13:42:28 +0800] "GET / HTTP/1.1" 500 257 "-" "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22"
www.beta800.net:80 222.247.56.11 - - [28/Feb/2013:13:42:28 +0800] "GET /favicon.ico HTTP/1.1" 500 257 "-" "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22"
www.beta800.net:80 222.247.56.11 - - [28/Feb/2013:13:42:28 +0800] "GET /favicon.ico HTTP/1.1" 500 257 "-" "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22"

আমার সেটিংস ফাইলটি এখানে:

import os.path    
DEBUG = False 
#TEMPLATE_DEBUG = DEBUG

HERE = os.path.dirname(__file__)
ADMINS = (
    ('admin', 'xyzadmin@qq.com'),
)

MANAGERS = ADMINS

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'zdm',                      # Or path to database file if using sqlite3.
        'USER': 'root',                      # Not used with sqlite3.
        'PASSWORD': 'passwd',                  # Not used with sqlite3.
        'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
    }
}

# Local time zone for this installation. Choices can be found here:
# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
# although not all choices may be available on all operating systems.
# In a Windows environment this must be set to your system time zone.
TIME_ZONE = 'America/Chicago'

# Language code for this installation. All choices can be found here:
# http://www.i18nguy.com/unicode/language-identifiers.html
LANGUAGE_CODE = 'en-us'

SITE_ID = 1

# If you set this to False, Django will make some optimizations so as not
# to load the internationalization machinery.
USE_I18N = True

# If you set this to False, Django will not format dates, numbers and
# calendars according to the current locale.
USE_L10N = True

# If you set this to False, Django will not use timezone-aware datetimes.
USE_TZ = True

# Absolute filesystem path to the directory that will hold user-uploaded files.
# Example: "/home/media/media.lawrence.com/media/"
MEDIA_ROOT = ''

# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash.
# Examples: "http://media.lawrence.com/media/", "http://example.com/media/"
MEDIA_URL = ''

# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/home/media/media.lawrence.com/static/"
#STATIC_ROOT = os.path.join(HERE, 'static').replace('\\','/')

# URL prefix for static files.
# Example: "http://media.lawrence.com/static/"
STATIC_URL = '/static/'
#STATIC_ROOT = os.path.join(HERE, 'static').replace('\\','/')
S= os.path.join(HERE, 'static').replace('\\','/')

# Additional locations of static files
STATICFILES_DIRS = (
    # Put strings here, like "/home/html/static" or "C:/www/django/static".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
    '/home/zdm/static',
)

# List of finder classes that know how to find static files in
# various locations.
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
#    'django.contrib.staticfiles.finders.DefaultStorageFinder',
)

# Make this unique, and don't share it with anybody.
SECRET_KEY = '9a7!^gp8ojyk-^^d@*whuw!0rml+r+uaie4ur$(do9zz_6!hy0'

# List of callables that know how to import templates from various sources.
TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',
#     'django.template.loaders.eggs.Loader',
)

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    # Uncomment the next line for simple clickjacking protection:
    # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

ROOT_URLCONF = 'zdm.urls'

# Python dotted path to the WSGI application used by Django's runserver.
WSGI_APPLICATION = 'zdm.wsgi.application'

TEMPLATE_DIRS = (
    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
    '/home/zdm/templates',
)

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # Uncomment the next line to enable the admin:
    'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
    'zdm',
    'portal',
    'admin',
    'tagging',
)

হ্যাঁ, আমি আমার টেম্পলেটগুলিতে 403 এবং 404 500 এইচটিএমএল ফাইল যুক্ত করেছি
zhiguo.wang

আপনার কাছে কি 500.html এবং 404.html এবং 403.html ফাইল রয়েছে? আমি মনে করি যে আমার টেম্পলেট ডিরেক্টরিগুলির মূলটিতে এই ফাইলগুলি নেই এমন একটি মোতায়েনপ্রাপ্ত প্রকল্পের সাথে আমার একটি সমস্যা আছে।
es

যদি আপনার সাইটটি 500 টি ত্রুটি উত্পন্ন করে থাকে তবে এপাচি লগটিতে কিছু তথ্য থাকা উচিত, আপনি লোকটিকে দেখার জন্য ত্রুটি লগ ফাইলের শেষের একটি অংশটি পেরিয়ে যেতে চাইতে পারেন।
es

87
আপনি এখনই নিজের SECRET_KEY পরিবর্তন করতে চান এটি প্রকাশ্যে উপলভ্য ...
ফ্রেক্সটিল

1
এটি সবার উত্তর নয়। স্ট্যাকওভারফ্লো . com / a / 37218484 / 4028977 এ নীচে দেখানো হয়েছে , এর কারণ হওয়ার অনেক কারণ থাকতে পারে। কিছু সাধারণ লগিংয়ের মাধ্যমে আপনি অনুমান করা ছাড়া এটি খুঁজে পেতে পারেন।
রব

উত্তর:


413

জাজানো 1.5 সুরক্ষার কারণে প্রয়োজনীয় হোস্ট সেটিং প্রবর্তন করেছে । জ্যাঙ্গো 1.5 দিয়ে তৈরি একটি সেটিংস ফাইলটিতে এই নতুন বিভাগটি রয়েছে যা আপনাকে যুক্ত করতে হবে:

# Hosts/domain names that are valid for this site; required if DEBUG is False
# See https://docs.djangoproject.com/en/1.9/ref/settings/#allowed-hosts
ALLOWED_HOSTS = []

দ্রুত ['www.beta800.net']বা ['*']পরীক্ষার জন্য এখানে আপনার হোস্ট যুক্ত করুন , তবে ['*']উত্পাদনের জন্য ব্যবহার করবেন না


32
বাহ - এই আমাদের বিট। এটি সত্যিই স্তন্যপান করে যে এই সেটিংটি ডক্সে সমাহিত হয়েছে। আমাদের প্রযোজনার সাইটটি DEBUG = মিথ্যা দিয়ে কাজ করবে না। এটি নির্দেশ করার জন্য আপনাকে ধন্যবাদ !!!
shreddd

4
সুরক্ষা ইস্যুগুলির মধ্যে আরও বেশি যা এই সেটিংটি চালু করেছে: ব্যবহারিক HTTP হোস্ট শিরোনামের আক্রমণ['*']উত্পাদনে ব্যবহার না করার জন্য আপনাকে অবশ্যই নিশ্চিত করবে ।
জার্মটভিডিজক

4
BL। বিরক্তিজনক যে তারা এটিকে সেটিংস.পি-র একটি ডিফল্ট মান হিসাবে ধরে রাখে না, সম্ভবত কোনও বিস্তৃত মন্তব্য দিয়ে ...
hwjp

7
মাঝে মাঝে ভাবতে থাকি কেন জ্যাঙ্গো আরও বেশি করে প্রতিবন্ধী হয়ে উঠছে! অবশ্যই এই ছেলেরা আমার চেয়ে অনেক ভাল প্রোগ্রামার, তবে সত্যিকারের এবং পরিষ্কার পদক্ষেপটি সার্ভারকে সঠিকভাবে কনফিগার করার জন্য অ্যাপ্লিকেশন পর্যায়ে দুর্বলতাগুলি "ঠিক" করার সিদ্ধান্তটি আমি সত্যিই বুঝতে পারি না। একই "টেমপ্লেট ক্যাচিং" এবং "অবিচ্ছিন্ন সংযোগগুলি" এর জন্য যায় ... অকেজো কোড যা কোনও সিরিয়াস ওয়েবসাইটে ব্যবহৃত হবে না; এখনও প্রোগ্রামিংয়ের পবিত্র গ্রেইল হিসাবে উপস্থাপন করা হয়! হয়তো শুধু আমি, আমি আগে ভুল ছিল!
স্টেফ্যানচ

3
কিছু নয়, সমস্যাটি খুঁজে পেয়েছি। django-pipelineস্থিতিশীল এখনও সংগ্রহ করা হয়নি যখন এটি এর আচরণের সাথে সম্পর্কিত ছিল । একটি সাধারণ টিপ হিসাবে, জ্যাঙ্গোর handle_uncaught_exceptionপদ্ধতিতে ব্রেকপয়েন্ট স্থাপন করা আপনাকে এখানে কী ঘটছে তা নির্ধারণ করতে সহায়তা করবে।
পিটার

51

আমি জানি যে এটি দেরি হয়ে গেছে তবে আমি এখানে আমার ত্রুটি ৫০০ এর সাথে অনুসন্ধান করে শেষ করেছি DEBUG=False, আমার ক্ষেত্রে এটিটি পরিণত হয়েছে ALLOWED_HOSTSতবে আমি os.environ.get('variable')হোস্টগুলিকে জনবসতি করতে ব্যবহার করছি, আমি লগিং সক্ষম না করা অবধি এটি লক্ষ্য করিনি, আপনি পারেন নীচের সাথে ফাইলগুলিতে সমস্ত ত্রুটি লগ করুন এবং এটি তখনও লগ হবে DEBUG=False:

# settings.py
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'verbose': {
            'format' : "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s",
            'datefmt' : "%d/%b/%Y %H:%M:%S"
        },
        'simple': {
            'format': '%(levelname)s %(message)s'
        },
    },
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': 'mysite.log',
            'formatter': 'verbose'
        },
    },
    'loggers': {
        'django': {
            'handlers':['file'],
            'propagate': True,
            'level':'DEBUG',
        },
        'MYAPP': {
            'handlers': ['file'],
            'level': 'DEBUG',
        },
    }
}

16
এটি গ্রহণযোগ্য উত্তর হওয়া উচিত। অনুমানের চেষ্টা করার পরিবর্তে প্রযোজনীয় সেটিংস ব্যবহারের পরে কী কী ভুল তা ফ্রেমওয়ার্কটি নিজেই জিজ্ঞাসা করা আরও অনেক কার্যকর।
স্টিফান ড্রাগেনভ

4
আসলে এটি অন্ধকারে ঘোরাফেরা করার মতো কিছু নয়। আপনি সাধারণত এই পদ্ধতিটি ব্যবহার করে দেখবেন এমন ত্রুটি বার্তাটি দেখুন। আমার ক্ষেত্রে, আমি আমার সেটিংসে একটি পৃথক সেটিংটি অনুপস্থিত ছিল py আমার যা দরকার ছিল তা হ'ল লগ করা। একটা গুরুত্বপূর্ণ নোট: আমি যোগ / পথ / থেকে / আমার / জ্যাঙ্গো / 'mysite.log' হিসেবে ডক্স উদাহরণে দেখানো আগে: docs.djangoproject.com/en/1.10/topics/logging/#examples
রব

4
আমি সমাধানের সন্ধান করতে ঘন্টা ব্যয় করেছি, কোনও ব্যবহার নেই। এই উত্তর অনুসারে কেবল লগিং ব্যবহার করুন এবং আপনার আপনার সমস্যা হওয়া উচিত, এটি সেরা উত্তর। ধন্যবাদ ওপি!
স্ট্যাক

আমার সার্ভার ত্রুটিগুলি কোনও লগ উত্পাদন করতে পারে না বলে মনে হচ্ছে! আমি বিভিন্ন লগিং কনফিগার চেষ্টা করেছি কোন লাভ হয়নি। কোন ধারনা?
ক্যাম্মিল

5
ধন্যবাদ! এটি আমার ত্রুটি সমাধান করেছে। দেখা যাচ্ছে যে প্যাকেজ থেকে কিছু স্থিতিশীল সম্পদ সংগ্রহ করার জন্য আমার সংগ্রহশালা চালানো দরকার।
থিমসআপ 12'19

33

আমি সম্প্রতি জাজানো ২.০ তে একই সমস্যার মুখোমুখি হয়েছি। আমি সেট করে সমস্যাটি বের করতে সক্ষম হয়েছি DEBUG_PROPAGATE_EXCEPTIONS = True। এখানে দেখুন: https://docs.djangoproject.com/en/2.0/ref/settings/#debug-propagate-exferences

আমার ক্ষেত্রে, ত্রুটি ছিল ValueError: Missing staticfiles manifest entry for 'admin/css/base.css'। আমি স্থানীয়ভাবে চালিয়ে এটি স্থির করেছি python manage.py collectstatic


আমি একই জিনিস যাচ্ছি কিন্তু সংগ্রাহক আমার জন্য এটি ঠিক করেনি। আপনি কি "ত্রুটি পৌঁছাতে পারবেন না" পেয়েছেন? সেক্ষেত্রে আপনি কীভাবে এটি ঠিক করেছেন?
কবি বৈদ্য

এই সেটিংটি উল্লেখ করার জন্য আপনাকে অনেক ধন্যবাদ
বাস্তিয়ান

23

আমার ক্ষেত্রে, তৃতীয় পক্ষের অ্যাপ্লিকেশনগুলির ডক্স পড়া আমাকে সঠিকভাবে সংরক্ষণ করেছিল।

অভিযুক্ত ব্যক্তি? django_compressor

আমার ছিল

{% load compress %}
{% compress css %}
 ... css files linked here ..
{% endcompress %}

DEBUG = True সর্বদা আমাকে 500 দিয়েছিল it এটি ঠিক করতে, এটি চালানোর জন্য আমার সেটিংসে একটি লাইন প্রয়োজন

COMPRESS_ENABLED = os.environ.get('COMPRESS_ENABLED', False)

ধন্যবাদ এ কারণেই এটি আমার পক্ষে কাজ করে নি, তবে সেই লাইনটি জাঙ্গো_কম্প্রেসরকে কাজটি নিষ্ক্রিয় করে না?
ফ্যানকুশ

1
@ ফ্যানকুশ নোপ কোন ক্ষতি জড়িত না। django-compressor.readthedocs.io/en/latest/settings/… কম্প্রেসার এখনও পুরোপুরি তার কাজ করা হবে! কেবলমাত্র আপনার সমস্ত স্ট্যাটিক্সকে সংকুচিত করুন (
সিএসএসের

13

ডান, জ্যাঙ্গো 1.5 তে যদি DEBUG = মিথ্যা হয়, ALLOWED_HOSTS কনফিগার করুন, পোর্ট নম্বর ছাড়াই ডোমেন যুক্ত করুন। উদাহরণ:

ALLOWED_HOSTS = ['localhost']

যে কোনও কারণেই, 'লোকালহোস্ট' ব্যবহার করা আমার পক্ষে কার্যকর হয়নি। পরিবর্তে আমাকে আইপি '127.0.0.1' ব্যবহার করতে হয়েছিল। আপনি যদি বাইরে বেরোনেন এবং কেবল এটি কাজ করতে চান তবে আমি '*' ব্যবহার করতে সক্ষম হয়েছি। তবে আমি প্রযোজনায় এটি করার পরামর্শ দেব না। ওএসএক্স জঙ্গো 1.4.20 চলছে
ব্লেকপিটারসন

11

আপনাকে অবশ্যই পুরো জায়গা জুড়ে আপনার ইউআরএলগুলি পরীক্ষা করতে হবে। যখন DEBUGসেট করা থাকে False, যখন পিছনে পিছনে থাকা সমস্ত ইউআরএল আপনার কাছে থাকা থেকে পৃথক /হয়, বাগ হিসাবে গণ্য করা হয় , এক্ষেত্রে DEBUG = Trueজাজাঙ্গো /যেখানেই অনুপস্থিত রয়েছে সেখানেই যুক্ত হবে । সুতরাং, সংক্ষেপে, নিশ্চিত হয়ে নিন যে সমস্ত লিঙ্কগুলি যে কোনও স্ল্যাশের সাথে শেষ হয়েছে।


3
কেবল বিপরীত এবং ইউআরএল ট্যাগ ব্যবহার করুন এবং আপনার ভাল হওয়া উচিত
maazza

সেটিং DEBUG=False: পাশাপাশি আমদানি ত্রুটি প্রকটিত করতে stackoverflow.com/questions/25676453/...
ecoe

এমনকি জেএস এবং সিএসএস সম্পদের লিঙ্ক?
amchugh89

@ amchugh89: না, কেবল "
জাজানো

1
আমার সমস্যা হ'ল হোয়াইটোনাইজ কিছু চিত্র খুঁজে পাচ্ছে না এবং মান ভঙ্গ করছিল। আমি এটিও খুঁজে পেলাম না, তবে হোয়াইটোনাইজকে এটির সন্ধান না করার জন্য কীভাবে বলতে হবে তা জানতাম না। সুতরাং আমি হোয়াইটনয়েস বন্ধ করে দিয়েছি, জাঙ্গো স্ট্যাটিক সার্ভটি ব্যবহার করুন এবং এখন আমি ডিবাগ = প্রোডে ভুয়া চালাতে পারি। স্পষ্টতই আদর্শ নয় :(
amchugh89

7

আমার সবার জন্য হাসিখুশি গল্প আছে। এই পৃষ্ঠায় পৌঁছানোর পরে আমি বলেছিলাম "ইউরেকা! আমি বাঁচিয়েছি That এটি আমার সমস্যা হওয়া উচিত" " তাই আমি ALLOWED_HOSTSसेटिंग.পি এবং ... কিছুইতে প্রয়োজনীয় তালিকা .োকালাম। একই পুরানো 500 ত্রুটি। এবং না, এটি 404 এইচটিএমএল ফাইলের অভাবের জন্য নয়।

2 দিনের জন্য আমি নিজেকে বুনো তত্ত্বের সাথে ব্যস্ত করেছিলাম যেমন স্ট্যাটিক ফাইলগুলি পরিবেশন করার সাথে এর কিছু করার ছিল (বুঝতে পারুন যে আমি একজন নুব এবং নুবগুলি তারা কী করছে তা জানে না)।

তাহলে এটা কি ছিল? এটি এখন মিঃ মডারেটর যে আমরা একটি দরকারী টিপস আসি। আমার বিকাশ জাঙ্গো হ'ল সংস্করণ 1.5. কিছু, তবে আমার প্রোডাকশন সার্ভার সংস্করণ 1.5. কিছু কিছু + 1 ... বা সম্ভবত 2। তাই পরে আমি যোগ ALLOWED_HOSTSডেস্কটপ সংস্করণে settings.py , যা কি অনুরোধ hwjp --- একটি "settings.py এ ডিফল্ট মান, সম্ভবত ব্যাখ্যামূলক মন্তব্য সঙ্গে" ইঙ্গিতও --- আমি উৎপাদন সার্ভারে একই করেনি এটির জন্য সঠিক ডোমেন।

তবে আমি খেয়াল করতে ব্যর্থ হয়েছি যে জাজানোর পরবর্তী সংস্করণ সহ প্রোডাকশন সার্ভারে সেটিংস.পি-র একটি ব্যাখ্যামূলক মন্তব্য সহ একটি ডিফল্ট মান ছিল। এটি নিচে ছিল যেখানে আমি আমার এন্ট্রি করেছি, মনিটরের দর্শন ছাড়াই। এবং অবশ্যই তালিকাটি খালি ছিল। তাই আমার সময় নষ্ট।


1
আমার ঠিক একই হাসিখুশি প্যাটার্নটি ছিল! কেবলমাত্র এটি পাওয়ার পরে এটি হাসিখুশি হয়ে ওঠে, ধন্যবাদ this তার আগে এটি কেবল সরল হতাশাবোধ ছিল
বিনিত্তব

এই সমস্ত কিছুতে সহায়তা করে এমন কিছু হ'ল local_settings.pyপ্রতিটি পরিবেশের জন্য একটি ব্যবহার করা এবং তারপরে এটি আমদানি করা settings.py
নিকোরেলিয়াস

1
আমি যা করতে চাই তা হ'ল সেটিংসের / সেটিংসের পরিবর্তে একটি সেটিংস / ডিরেক্টরি রয়েছে । এই ডিরেক্টরিতে আপনার পৃথক পরিবেশের জন্য পৃথক .py ফাইল এবং সাধারণ সেটিংসের জন্য একটি বেস.পি থাকতে পারে। উত্পাদনের উপর নির্ভরশীল সেটিংস তখন বেস সেটিংস থেকে * আমদানি করে শুরু করতে পারে এবং তাদের ওভাররাইড করার জন্য যা কিছু প্রয়োজন তা ওভাররাইড করে। এছাড়াও, সেই সেটিংস / ডিরেক্টরিটিকে বৈধ মডিউলে রূপান্তরিত করার জন্য প্রয়োজনীয় init .py প্রয়োজনীয়, প্রথমে বেস.পি থেকে আমদানি করতে পারে এবং পরে লোকাল.পি (যা কেবলমাত্র স্থানীয়ভাবে উপস্থিত থাকবে) থেকে আমদানি করার চেষ্টা করতে পারে। এর অর্থ
হ'ল আপনাকে

7

মূল উত্তরটি পরিপূরক করা উন্নয়ন এবং উত্পাদনের মধ্যে স্যুইচ করার সময়
ALLOWED_HOSTS এবং DEBUG গ্লোবাল ধ্রুবকগুলি পরিবর্তন করা বিরক্তিকর settings.py। আমি এই কোডটি স্বয়ংক্রিয়ভাবে এই সেটিংগুলি সেট করতে ব্যবহার করছি:

import socket

if socket.gethostname() == "server_name":
    DEBUG = False
    ALLOWED_HOSTS = [".your_domain_name.com",]
    ...
else:
    DEBUG = True
    ALLOWED_HOSTS = ["localhost", "127.0.0.1",]
    ...

আপনি যদি ম্যাকোস ব্যবহার করেন তবে আপনি আরও জেনেরিক কোড লিখতে পারেন:

if socket.gethostname().endswith(".local"): # True in your local computer
    DEBUG = True
    ALLOWED_HOSTS = ["localhost", "127.0.0.1",]
else:
    ...

6

এটির মূল্যের জন্য - আমি DEBUG = Falseকেবল কয়েকটি পৃষ্ঠায় 500 পাচ্ছিলাম । পিডিবি দিয়ে ব্যতিক্রমটিকে সন্ধান করলে একটি নিখোঁজ সম্পদ প্রকাশ পেয়েছে (আমি সন্দেহ করি যে {% static ... %}টেমপ্লেট ট্যাগটি 500 এর জন্য অপরাধী ছিল।


1
এটিও আমার সমস্যা ছিল, বেস টেমপ্লেটটি কাস্টম 404 পৃষ্ঠাটি স্থির ট্যাগ ব্যবহার করেছে তবে শীর্ষে {% লোড স্ট্যাটিক% include অন্তর্ভুক্ত করেনি। আমি অন্য কোথাও এটি লক্ষ্য করিনি কারণ আমার অন্যান্য টেমপ্লেটগুলিতে এই লাইনটি ছিল তবে এটি যে কোনও জায়গায় স্থির ফাইলগুলিকে বোঝায় তাই এটি বেসে রেখে দেওয়া অর্থপূর্ণ।
ক্রিশন

2
এখানে একই সমাধান - আমি staticএকটি সিএসএস ফাইল অন্তর্ভুক্ত করতে ব্যবহার করছিলাম যা বিদ্যমান ছিল না।
ফিল গাইফোর্ড

5

আমি যখন একই সমস্যার মুখোমুখি হয়েছিলাম DEBUG = FALSE। উপরের উত্তর এবং অন্যান্য পোস্টগুলিতে ছড়িয়ে ছিটিয়ে থাকা হিসাবে এখানে একীভূত সমাধান রয়েছে।

ডিফল্টরূপে, সেটিংস.পিতে আমাদের রয়েছে ALLOWED_HOSTS = []ALLOWED_HOSTSত্রুটি থেকে মুক্তি পেতে দৃশ্যাবলী অনুসারে আপনাকে মূল্যবোধ করতে হবে এমন সম্ভাব্য পরিবর্তনগুলি এখানে রয়েছে :

1: আপনার ডোমেন নাম:

ALLOWED_HOSTS = ['www.example.com'] # Your domain name here

2: আপনার মোতায়েন করা সার্ভার আইপি যদি আপনার এখনও ডোমেন নাম না থাকে (যা আমার ক্ষেত্রে ছিল এবং মনোমুগ্ধকর মতো কাজ করেছিল):

ALLOWED_HOSTS = ['123.123.198.123'] # Enter your IP here

3: আপনি যদি স্থানীয় সার্ভারে পরীক্ষা করছেন, আপনি নিজের settings.pyবা settings_local.pyহিসাবে সম্পাদনা করতে পারেন :

ALLOWED_HOSTS = ['localhost', '127.0.0.1']

4: আপনি মানটিতে '*' সরবরাহ করতে পারেন ALLOWED_HOSTSতবে এটি সুরক্ষা কারণের কারণে উত্পাদন পরিবেশে প্রস্তাবিত নয় :

ALLOWED_HOSTS = ['*'] # Not recommended in production environment

আমি আমার ব্লগে একটি বিস্তারিত সমাধানও পোস্ট করেছি যা আপনি উল্লেখ করতে চাইতে পারেন।


5

ALLOWED_HOSTS কেবলমাত্র সমস্যা নয়, আমার জন্য আমাকে একটি 404 এইচটিএমএল তৈরি করতে হবে এবং এটি আমার টেম্পলেটগুলির বেস স্তরে রাখতে হবে (অ্যাপ্লিকেশন স্তর নয়) - এছাড়াও, আপনি একটি 404 ভিউ তৈরি করতে পারেন এবং একটি 404 হ্যান্ডলার ইউআরএল যোগ করতে পারেন তবে আমার মনে হয় ঐচ্ছিক। 404.html এটি স্থির করেছে

মেইনপ্রজেক্ট.আরলস এ

handler404 = 'app.views.custom_404'

app.views এ

def custom_404(request):
    return render(request, '404.html', {}, status=404)

তারপরে একটি টেম্পলেট / 404.html টেম্পলেট তৈরি করুন

এটি অন্য এস / ও পোস্টের কাছ থেকে পেয়েছি যা আমি এটি পাই না

সম্পাদনা

এছাড়াও, আমি হোয়াইটনয়েস দিয়ে সম্পদ পরিবেশন করলে 500 ত্রুটি পাই। আমার জীবনের জন্য এটি চিহ্নিত করতে পারিনি, হোয়াইটনয়েস থেকে ভ্যালু এরর ছিল যে আমিও পাইনি এমন একটি সম্পদ খুঁজে পাচ্ছি না, আপাতত ডিফল্ট জাঙ্গো দিয়ে যেতে হয়েছিল with


8
হোয়াইটোনাইজে আমার একই সমস্যা ছিল। python manage.py collectstaticঠিক কর.
ইউজিন পাখোমভ

1
@ amchungh89 আপনি জীবন রক্ষাকারী! এটি নির্দেশ করার জন্য থ্যাঙ্কস।
দীপক শর্মা

5

আমি এই সমস্যাটি সম্পর্কে আরও অনুসন্ধান এবং পরীক্ষা করছিলাম এবং আমি বুঝতে পেরেছিলাম সেটিংস.পি-তে নির্দিষ্ট স্ট্যাটিক ফাইল ডিরেক্টরিগুলি এর কারণ হতে পারে, সুতরাং মুষ্টি, আমাদের এই কমান্ডটি চালানো দরকার

python manage.py collectstatic

সেটিংস.পি-তে, কোডটি দেখতে কিছুটা দেখতে পাওয়া উচিত:

STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)

STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

3

আমি জানি যে এটি একটি অতি পুরানো প্রশ্ন, তবে সম্ভবত আমি অন্য কাউকে সাহায্য করতে পারি। DEBUG = মিথ্যা সেট করার পরে যদি আপনার 500 টি ত্রুটি হয় তবে আপনি কোনও ওয়েব ত্রুটিযুক্ত লগগুলিতে প্রদর্শিত হবে না এমন কোনও ত্রুটি দেখতে কমান্ড লাইনে সর্বদা পরিচালন.পি রানসরভার চালাতে পারেন।


2

এর 2019 এর মাঝামাঝি এবং আমি জ্যাঙ্গোর সাথে কয়েক বছর বিকাশ করার পরে এই ত্রুটির মুখোমুখি হয়েছি। সারা রাত ধরে আমাকে বিভ্রান্ত করলেন! এটি হোস্টের অনুমতি দেওয়া হয়নি (যা একটি 400 নিক্ষেপ করা উচিত), অন্য সব কিছু যাচাই করা হয়েছে, অবশেষে কেবল লগিংয়ের সময় কিছু ত্রুটি ঘটেছে যা কিছু হারিয়ে যাওয়া / বা বিশৃঙ্খল স্থির ফাইল ম্যানিফেস্ট (সংগ্রহের পরে) সেটআপের সাথে স্ক্রু করছে ing দীর্ঘ গল্প সংক্ষিপ্ত, যারা স্টাম্পড এবং তাই ঘটেছে তারা হোয়াইটইনসাইস ব্যবহার করছেন বা ক্যাচের সাথে জ্যাঙ্গো স্থিতিশীল ব্যাকেন্ড (প্রকাশিত স্থির ফাইল), সম্ভবত এটি আপনার জন্য।

  1. নিশ্চিত হয়ে নিন যে আপনি সবকিছু সেটআপ করেছেন (যেমনটি আমি হোয়াইটোনাইজ ব্যাকএন্ডের জন্য করেছি ... জ্যাঙ্গো ব্যাকেন্ডগুলি তবুও পড়ুন) http:// whitenoise.evans.io/en/stable/django.html

  2. যদি ত্রুটি কোড 500 এখনও আপনাকে গুলি করে দেয় তবে আপনার সেটিংসে নোট দিন ST STATICFILES_STORAGE AGE

এটি সেট করুন (সংকোচনের সাথে হোয়াইটোনাইজ ব্যাকএন্ডের জন্য)

STATICFILES_STORAGE = 'whitenoise.storage.CompressedStaticFilesStorage'

বা (জাজানো ডিফল্ট হিসাবে ছেড়ে দিন)

STATICFILES_STORAGE = django.contrib.staticfiles.storage.StaticFilesStorage

সব মিলিয়ে সমস্যাটি মনে হয়েছে যে এই সাদা রঙের ক্যাশে + সংক্ষেপণ ব্যাকএন্ড ->

STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

বা জ্যাঙ্গোর নিজস্ব ক্যাশে ব্যাকএন্ড ->

STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.ManifestStaticFilesStorage'

... আমার পক্ষে বেশ ভাল কাজ করেনি, যেহেতু আমার সিএসএস কিছু অন্যান্য উত্সকে উল্লেখ করছে যা সংগ্রহ / ব্যাকএন্ড ক্যাচিংয়ের সময় মিশ্রিত হতে পারে। এই সমস্যা আরো সম্ভাব্য হাইলাইট হয় http://whitenoise.evans.io/en/stable/django.html#storage-troubleshoot


1

আমার মনে হয় এটি HTTP সার্ভার সেটিংসও হতে পারে। আমার এখনও বিচ্ছিন্ন এবং পুরো সময় ALLOWED_HOSTS ছিল। আমি এটি স্থানীয়ভাবে অ্যাক্সেস করতে পারি (আমি গ্যানিকর্ন ব্যবহার করি) তবে DEBUG = মিথ্যা হলে ডোমেন নামের মাধ্যমে নয়। যখন আমি ডোমেন নামটি ব্যবহার করার চেষ্টা করি তখন আমাকে ত্রুটি দেয়, সুতরাং এটি আমাকে একটি এনজিনেক্স সম্পর্কিত সমস্যা মনে করে।

এনজিনেক্সের জন্য আমার কনফিড ফাইলটি এখানে:

server {
    listen   80;
    server_name localhost myproject.ca www.myproject.ca;
    root /var/web/myproject/deli_cms;

    # serve directly - analogous for static/staticfiles
    location /media/ {
        # if asset versioning is used
        if ($query_string) {
            expires max;
        }
    }
    location /admin/media/ {
        # this changes depending on your python version
        root /var/web/myproject/lib/python2.6/site-packages/django/contrib;
    }
    location /static/ {
    alias /var/web/myproject/deli_cms/static_root/;
    }

    location / {
        proxy_pass_header Server;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_connect_timeout 10;
        proxy_read_timeout 10;
        proxy_pass http://localhost:8000/;
    }
    # what to serve if upstream is not available or crashes
    error_page 500 502 503 504 /media/50x.html;
}

আমার gunicorn কনফিগ ফাইল নিম্নরূপ: # / বিন / ব্যাশ সিডি / Var / ওয়েব / delicms_env / deli_cms / উৎসে ../bin/activate Exec gunicorn --workers = 3 deli_cms.wsgi: আবেদন
user2868304

আমার সমস্যাটি এখন সমাধান হয়ে গেছে, আমি বন্দুকর্নি_জানাগো স্ক্রিপ্ট ব্যবহার করছিলাম এবং এটি আমাকে অবহেলা বার্তা দিচ্ছিল। এটি স্থানীয়ভাবে কেন কাজ করেছে তা এখনও নিশ্চিত নন, আমার এনজিএনএক্স কনফিগারেশনটি পরিবর্তন করে নি কেবল পুরাতন স্ক্রিপ্টটি পরিবর্তন করে ব্যানিকর্ন ব্যবহার করতে এবং ডাব্লুএসজি: অ্যাপ্লিকেশন মডিউলটি পরিবর্তে ব্যবহার করেছে এবং এটি আবার কাজ করে। গ্যানিকর্ন এর আগে কিছু অবমূল্যায়ন বার্তা ফেলেছিল তবে আমার সমস্যাটির সাথে সুনির্দিষ্ট কিছু নয়।
ব্যবহারকারী 2868304

1

আমার অনুরূপ সমস্যা আছে, আমার ক্ষেত্রে এটি বডি ট্যাগের ভিতরে একটি মন্তব্য করা স্ক্রিপ্ট থাকার কারণে হয়েছিল was

<!--<script>  </script>-->

1

আমি এই ইস্যু মধ্যে দৌড়ে। সারণী ব্যবহার করে আমি টেমপ্লেটে অন্তর্ভুক্ত ছিলামstatic টেম্পলেট ট্যাগ , এমন একটি ফাইল যা অস্তিত্বহীন। লগগুলিতে এক নজর আমাকে সমস্যাটি দেখিয়েছে।

আমার ধারণা, এই ধরণের ত্রুটি হওয়ার সম্ভাব্য কারণগুলির মধ্যে এটি কেবল একটি one

গল্পটির নৈতিক: সর্বদা ত্রুটিগুলি লগ করুন এবং সর্বদা লগগুলি চেক করুন।


1

@ স্পয়ারবারকে ধন্যবাদ, লগ ফাইলে, আমি ত্রুটিটি পেয়েছি: ValueError: The file 'myapp/styles.css' could not be found with <whitenoise.storage.CompressedManifestStaticFilesStorage ...>

আমার জ্যাঙ্গো অ্যাপে আমার কয়েকটি সমস্যা ছিল। আমি লাইন সরিয়েছি
STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage' হিরকুর ডকুমেন্টেশন থেকে যে রেখাটি পেয়েছি তা সরিয়ে ফেলেছি।

জ্যাঙ্গো অ্যাপ্লিকেশনটির মূলটিতে আমাকে অতিরিক্ত ডিরেক্টরি ( অন্য এসও উত্তরের জন্য ধন্যবাদ ) যুক্ত করতে হয়েছিল যদিও আমি এটি ব্যবহার করছিলাম না। তারপরে সার্ভার চালানোর আগে কমান্ডটি চালানো সমস্যার সমাধান করে। অবশেষে, এটি সূক্ষ্ম কাজ শুরু।staticmyapp/staticpython manage.py collectstatic


এটি কীভাবে মূল প্রশ্নের উত্তর দেয়?
নিক

1

আমি ডিবাগ = 500 আকারে ভুয়া পেতে শুরু করেছি

django.urls.exceptions.NoReverseMatch: Reverse for 'home' not found.
or...
django.urls.exceptions.NoReverseMatch: Reverse for 'about' not found.

যখন উত্সাহিত করার পরিবর্তে django.core.exferences.VوادationError উত্থাপন করা হয় V

সত্যি কথা বলতে, এটি ইতিমধ্যে 500 আগে উত্থাপন করেছিল, তবে একটি ভ্যালিডেশনআরার হিসাবে, ডিবাগ = মিথ্যা দিয়ে, এটি NoReversMatch এ পরিবর্তিত হয়েছিল।


1

এটি সম্ভবত অন্য কাউকে সহায়তা করবে, আমার ক্ষেত্রে অনুপস্থিত ফ্যাভিকন নিয়ে সমস্যা।


0

আমি জানি এটি একটি পুরানো প্রশ্ন, তবে DEBUG = মিথ্যা বলার সময় আমি একটি 500 ত্রুটিও পেয়েছিলাম। বেশ কয়েক ঘন্টা পরে, আমি বুঝতে পেরেছিলাম যে আমি আমার বেস html এর কয়েকটি লিঙ্কগুলি একটি পিছনের স্ল্যাশের সাথে শেষ করতে ভুলে গিয়েছি।


এমনকি সিএসএস এবং জেএস স্টাফ?
amchugh89

0

এটি পুরানো এবং আমার সমস্যাটি সমস্যার সাথে সম্পর্কিত হয়ে গেছে তবে ওপি-র জন্য নয় তবে আমার সমাধান অন্য যে কেউ উপরোক্ত চেষ্টা করেও লাভ করতে পারেন নি।

সিএসএস এবং জেএস ফাইলগুলি মিনিফাই করার জন্য আমার কাছে জ্যাঙ্গোর একটি সংশোধিত সংস্করণে একটি সেটিং ছিল যা কেবলমাত্র ডিইবিইউজি বন্ধ থাকাকালীন চলত। আমার সার্ভারে সিএসএস মিনিফায়ার ইনস্টল হয়নি এবং ত্রুটি ছুঁড়েছে। আপনি যদি জ্যাঙ্গো-মাকো-প্লাস ব্যবহার করছেন তবে এটি আপনার সমস্যা হতে পারে।


0

একটি ছোট বিষয় লক্ষণীয়, যদি অ্যারেটিতে কিছু না থাকে তবে পরবর্তী সমস্ত অনুমোদিত হোস্ট উপেক্ষা করা হবে।

ALLOWED_HOSTS = [
    "localhost",
    None,
    'example.com', # First DNS alias (set up in the app)
    #'www.example.com', # Second DNS alias (set up in the app)
]

Django version 1.8.4


0

পার্টিতে কিছুটা দেরি হয়ে গেছে, এবং অবশ্যই সমস্যাগুলির একটি দল হতে পারে তবে আমার একই রকম সমস্যা হয়েছে এবং এটি প্রমাণিত হয়েছে যে আমার এইচটিএমএল মন্তব্যে inside%%} বিশেষ অক্ষর ছিল ...

<!-- <img src="{% static "my_app/myexample.jpg" %}" alt="My image"/> -->

0

আমার একটি দৃষ্টিভঙ্গি ছিল যা ডিবাগ = ভুয়াতে 500 ত্রুটি ফেলেছিল তবে ডিবাগে সত্য = সত্য। যে কেউ এই ধরণের জিনিস পেয়েছে এবং মঞ্জুরিযুক্ত হোস্টগুলি সমস্যা নয়, আমি কোনও টেমপ্লেটের স্থিতি ট্যাগটি ভুল অবস্থানের দিকে ইঙ্গিত করে আপডেট করে আমার দৃষ্টিভঙ্গি স্থির করেছি।

সুতরাং আমি কেবলমাত্র লিঙ্কগুলি পরীক্ষা করার পরামর্শ দিচ্ছি এবং ট্যাগগুলি ব্যবহৃত যে কোনও টেম্পলেটগুলির মধ্যে এয়ারটাইট রয়েছে, সম্ভবত কিছু জিনিস নেট থেকে ডিবাগের মধ্যে পিছলে যায় তবে উত্পাদনে ত্রুটি দেয়।


0

DEBUG = মিথ্যা যখন আমি 500 ত্রুটির আরও একটি কারণ পেয়েছি। আমি জ্যাঙ্গো compressorইউটিলিটি ব্যবহার করি এবং আমাদের ফ্রন্ট-এন্ড ইঞ্জিনিয়ার একটি জ্যাঙ্গো টেমপ্লেটের একটি ব্লকের ভিতরে ফন্ট ফাইলগুলিতে উল্লেখ যুক্ত করে compress css। এটার মত:

{% compress css %}
    <link href="{% static "css/bootstrap.css" %}" rel="stylesheet">
    <link href="{% static "css/bootstrap-spinedit.css" %}" rel="stylesheet">
    <link href="{% static "djangular/css/styles.css" %}" rel="stylesheet">
    <link href="{% static "fonts/fontawesome-webfont.ttf" %}" rel="stylesheet">
{% endcompress %}

সমাধানটি ছিল লাইনটির ttfনিচে ফাইলের লিঙ্কটি সরানো endcompress


0

আমারও এর মতো সমস্যা ছিল এবং আমি কীভাবে আমার সমাধান করেছি তা আমি জানাব কারণ এটির কারণ হতে পারে যে কেউ একইরকম অভিজ্ঞতাও বোধ করছে।

আমার ক্ষেত্রে, ত্রুটিটি হয়েছিল কারণ সার্ভার হোমপেজ থেকে কিছু স্থির ফাইল খুঁজে পাচ্ছে না।

সুতরাং নিশ্চিত করুন যে ত্রুটিটি কেবলমাত্র এর মধ্যে ঘটে occurs index অন্যটিতে বা অন্য পৃষ্ঠায় ঘটে। সমস্যাটি যদি কেবল সূচকেই ঘটে থাকে তবে সম্ভবত আপনার স্ট্যাটিক ফাইলগুলি পরীক্ষা করা দরকার। আমি ক্রোম পূর্বরূপ কনসোলটি খোলার এবং কোনও ত্রুটি পরীক্ষা করার পরামর্শ দিচ্ছি।

আমার ক্ষেত্রে, সার্ভারটি খুঁজে পেল না favicon.icoএবং অন্য দুটি সিএসএস।

python manage.py collectstaticএটি ঠিক করতে আমি পাস করেছি এবং এটি কাজ করেছে।


0

আমি জানি এই পোস্টটি বেশ পুরানো তবে এটি এখনও পুরোপুরি প্রাসঙ্গিক।

এটির মূল্যের জন্য - আমি DEBUG = Falseআমার সাইটের সমস্ত পৃষ্ঠার জন্য 500 পাচ্ছিলাম ।

ডিবাগ করার সময় আমি কোনও ট্রেসব্যাক পাইনি।

আমার সাইটের মধ্যে আমার টেম্পলেটগুলির প্রতিটি স্থির লিঙ্কটি দিয়ে যেতে হয়েছিল এবং আমার চিত্র উত্সের সামনে একটি / (ফরোয়ার্ড স্ল্যাশ) পেয়েছি। stat% স্থিতিশীল ...%}। এর ফলে 500 ত্রুটি হয়েছে DEBUG = Falseতবে Debug = Trueকোনও ত্রুটি ছাড়াই পুরোপুরি সূক্ষ্মভাবে কাজ করেছে । খুবই বিরক্তিকর! সতর্ক করা হবে! ফরোয়ার্ড স্ল্যাশের কারণে অনেক সময় ব্যয় হয় ...


0

আপনি python manage.py collectstaticসেট DEBUG = Falseএবং ALLOWED_HOSTS = ['127.0.0.1']ইন করার পরে চালাতে চাইবেন settings.py। এই দুটি পদক্ষেপের পরেও আমার ওয়েব অ্যাপ্লিকেশনটি আমার স্থানীয় সার্ভারে এমনকি DEBUG = ফলস মোডের সাথে ভালভাবে চলে ran

বিটিডাব্লুতে আমার এই সেটিংস রয়েছে settings.py

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'whitenoise.middleware.WhiteNoiseMiddleware', # what i added
    'django.middleware.common.CommonMiddleware', # and so on...
]

STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

আমি ধরে নিয়েছি হোয়াইটেনয়েজ সেটিংয়ের কালেক্টেস্ট্যাটিক কমান্ডের সাথে কিছু আছে।


0

হ্যালো আমি নিজেকে আপনার সাথে যোগাযোগ করার অনুমতি দিই কারণ আমারও একই সমস্যা আছে যদি আপনার কোনও সমাধান হয় তবে আমি এটি জানতে চাই

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.