Django не загружает медиафайлы на виртуальном хостинге cPanel
У меня проблемы с загрузкой медиафайлов, загруженных пользователем, и их отображением через файл template.html при DEBUG = FALSE. Статические файлы отображаются, но я продолжаю получать webaddress/media/images/image1.png 404 Not Found
при каждой загрузке страницы. Я последовал некоторым руководствам и добавил urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
к urls.py
, но все равно получаю ошибку 404. Я общался с хостинг-провайдером cPanel, и они сказали, что у меня нет доступа к изменению файла httpd.conf cPanel Apache, поэтому я хочу, чтобы Django управлял обслуживанием медиафайлов, поскольку он обрабатывает загрузку изображений в каталог media/images
.
Место, где находится каталог изображений: /home/<cPanelUserName>/repositories/djangoApp/media/images
settings.py
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
template/index.html
<body style="background: url('{{ background_pic.url }}'); background-size: cover; background-position: center; background-attachment: fixed;">
<div id="profile">
<img id="userPhoto" src="{{ profile_pic.url }}" alt="{{ profile_pic_title }}">
</div>
</body>
models.py
class profilePic(models.Model):
title = models.CharField(max_length=50)
image = models.ImageField(upload_to='images/')
class backgroundPic(models.Model):
title = models.CharField(max_length=50)
image = models.ImageField(upload_to='images/')
views.py
def index(request):
imageModel = profilePic.objects.get(pk=1)
backgroundModel = backgroundPic.objects.get(pk=1)
return render(
request,
"template/index.html",
{
"profile_pic_title":imageModel.title,
"profile_pic":imageModel.image,
"background_pic_title":backgroundModel.title,
"background_pic":backgroundModel.image,
}
)
urls.py
from django.contrib import admin
from django.urls import include, path
from django.conf import settings
from django.conf.urls.static import static
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns = [
path('', include('SocialLinks.urls')),
path('admin/', admin.site.urls),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)