2017-07-17 4 views
-1

Ich benutze Django und meine Website funktioniert perfekt, aber nicht geladen Bilder. Ich vermute falsches ist Pfade, aber ich kann es nicht beheben. Ich sehe Fragen wie diese und verwende sie alle auf meiner Website, aber sie haben nicht funktioniert, bitte helfen Sie mir, ich kann das nicht für ein paar Tage lösen.Django kann keine Bilder und statische Dateien finden

HINWEIS: meine Website funktioniert auf localhost in Ordnung, auf meinem Computer, aber funktionieren nicht auf Server

+0

helfen werden Sie SQLite? – Mirza715

+0

DATABASES = { 'default': { 'Motor': 'django.db.backends.sqlite3', 'NAME': os.path.join (BASE_DIR, 'db.sqlite3'), } } –

+0

In localhost können Sie das tun, aber wenn Sie es auf dem Server arbeiten lassen, sollten Sie 'PostgreSql' oder' MySql' verwenden, da lokale Dateien lokal gespeichert sind und Sie mit dem lokalen Pfad darauf zugreifen können, wenn Sie gerade arbeiten Server müssen Sie diese Dateien dann im Cloud- oder Persistenzspeicher speichern. – Mirza715

Antwort

0

Erstellen Sie einen Ordner static in Ihrem Projektverzeichnis oder Ihre App Verzeichnis mit dem Namen . Erstellen Sie innerhalb von static einen anderen Ordner mit der Bezeichnung images.

Fügen Sie in Ihrer Datei diese Zeile hinzu.

STATIC_URL = '/static/' 

Fügen Sie diese in Ihrer Vorlagendatei der ersten Zeile hinzu.

Verwenden Sie in Ihrer Vorlage Code wie diesem, um das Bild anzuzeigen.

<img src="{% static "image/example.jpg" %}"/> 

Fügen Sie die folgenden Zeilen in settings.py hinzu.

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

STATICFILES_DIRS = [ 
    os.path.join(BASE_DIR, "static"), 
] 

Schließlich gehen Sie zu Ihrem Server-Projektordner und verwenden Sie den folgenden Befehl.

python manage.py collectstatic 

Dieser Befehl wird alle statischen Dateien (zum Beispiel Bilder) von Ihnen statischen Ordner kopieren und in Ordner einfügen Sie in STATIC_ROOT erwähnt, in diesem Fall wird der Ordner staticfiles ist.

Hoffe, das hilft.

0

es geht nicht um Pfad, denke ich. Becuse hier ist ein weiteres Basisprojekt

enter image description here

Ansichten

from django.shortcuts import render 
from django.http import HttpResponse 

def index(request): 
    return HttpResponse("<h1><img src='static/ben2.jpg'></h1>") 

settings.py

import os 

# Build paths inside the project like this: os.path.join(BASE_DIR, ...) 
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 


# Quick-start development settings - unsuitable for production 
# See 
https://docs.djangoproject.com/en/1.11/howto/deployment/checklist/ 

# SECURITY WARNING: keep the secret key used in production secret! 
SECRET_KEY = 'key 

# SECURITY WARNING: don't run with debug turned on in production! 
DEBUG = True 

ALLOWED_HOSTS = ['my_server_ip'] 


# Application definition 

INSTALLED_APPS = [ 
    'webapp', 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
] 

MIDDLEWARE = [ 
    'django.middleware.security.SecurityMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    'django.middleware.clickjacking.XFrameOptionsMiddleware', 
] 

ROOT_URLCONF = 'web.urls' 

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [], 
     'APP_DIRS': True, 
     'OPTIONS': { 
      'context_processors': [ 
       'django.template.context_processors.debug', 
       'django.template.context_processors.request', 
       'django.contrib.auth.context_processors.auth', 
       'django.contrib.messages.context_processors.messages', 
      ], 
     }, 
    }, 
] 

WSGI_APPLICATION = 'web.wsgi.application' 


# Database 
# https://docs.djangoproject.com/en/1.11/ref/settings/#databases 

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.sqlite3', 
     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 
    } 
} 


# Password validation 
# https://docs.djangoproject.com/en/1.11/ref/settings/#auth-password- 
validators 

AUTH_PASSWORD_VALIDATORS = [ 
    { 
     'NAME': 

'django.contrib.auth.password_validation.UserAttributeSimilarityValidator' , }, { 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', }, { 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', }, { 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator‘, }, ]

# Internationalization 
# https://docs.djangoproject.com/en/1.11/topics/i18n/ 

LANGUAGE_CODE = 'en-us' 

TIME_ZONE = 'UTC' 

USE_I18N = True 

USE_L10N = True 

USE_TZ = True 


# Static files (CSS, JavaScript, Images) 
# https://docs.djangoproject.com/en/1.11/howto/static-files/ 

STATIC_URL = '/static/' 

Ich habe alle Kombinationen versucht, wie das, was Sie gesagt haben: D aber sie haben mich nicht