我在将文件上传到cpanel中的服务器(共享服务器(时遇到问题。
当我通过管理员或视图上传文件时,它会响应 404
如果有人有帮助,我将不胜感激
设置
DEBUG = True
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
# STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static/'),)
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'static/media/')
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
os.path.join(BASE_DIR, 'media'),
)
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
MIDDLEWARE = [
'whitenoise.middleware.WhiteNoiseMiddleware', ...
网址
...] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT, show_indexes= True
) + static(
settings.STATIC_URL, document_root=settings.STATIC_ROOT
)
型
class Product(models.Model):
name = models.CharField(max_length=50)
produc_pic = models.ImageField(default = '',null=True, blank=True)
.htaccess
<IfModule Litespeed>
WSGIScriptAlias / /home/ibhfrwld/ferre-bianconeri/ferreteria-bianconeri/ferre/wsgi.py
<Directory /home/ibhfrwld/ferre-bianconeri/ferreteria-bianconeri/ferre>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
Alias /media/ /home/ibhfrwld/ferre-bianconeri/ferreteria-bianconeri/media/
Alias /static/ /home/ibhfrwld/ferre-bianconeri/ferreteria-bianconeri/static/
<Directory /home/ibhfrwld/ferre-bianconeri/ferreteria-bianconeri/static>
Require all granted
</Directory>
<Directory /home/ibhfrwld/ferre-bianconeri/ferreteria-bianconeri/media>
Require all granted
</Directory>
</IfModule>
目录树
******我在这里找到解决方案, https://smartlazycoding.com/django-tutorial/deploy-a-django-website-to-a2-hosting 我遇到了同样的问题。这是passenger_wsgy.py的原因。最初我只被使用
从 mysite.wsgi 导入应用程序
它不起作用,所以我使用下面的代码,它对我来说工作正常
import os
import sys
# Set up paths and environment variables
sys.path.append(os.getcwd())
os.environ['DJANGO_SETTINGS_MODULE'] = 'project_name.settings'
import django.core.handlers.wsgi
from django.core.wsgi import get_wsgi_application
SCRIPT_NAME = os.getcwd()
class PassengerPathInfoFix(object):
def __init__(self, app):
self.app = app
def __call__(self, environ, start_response):
from urllib.parse import unquote
environ['SCRIPT_NAME'] = SCRIPT_NAME
request_uri = unquote(environ['REQUEST_URI'])
script_name = unquote(environ.get('SCRIPT_NAME', ''))
offset = request_uri.startswith(script_name) and
len(environ['SCRIPT_NAME']) or 0
environ['PATH_INFO'] = request_uri[offset:].split('?', 1)[0]
return self.app(environ, start_response)
application = get_wsgi_application()
application = PassengerPathInfoFix(application)
不要在此线程中完全应用此解决方案 创建或编辑模型实例时 Django 管理员 404 错误,也不是您建议的错误,但是如果我与他交谈支持团队并要求他们停用以前在 cpanel 中可用的"modsec",他们会问你为什么,你告诉他们由于与 django 不兼容,瞧, 如果您需要再次激活它,请再次与他们联系。
在此之后一切正常
很抱歉,出了点问题。 该问题已记录下来以供调查。请稍后重试。
从 my_project.wsgi 导入应用程序更改后出现上述错误 对于您的,我仍然收到相同的错误。