无法在CPanel上上传媒体文件(使用django) [英] Cannot upload media files on CPanel (using django)

查看:55
本文介绍了无法在CPanel上上传媒体文件(使用django)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我无法在Cpanel上上传媒体文件.最初我能够上传文件,但现在它显示错误404 URL未找到.

I am not able to upload my media files on Cpanel. Initially I was able to upload files but now it shows Error 404 URL Not Found.

我的代码或URL没有任何问题,因为它可以在localhost上正常工作.

There is nothing wrong with my code or my url as it works fine on localhost.

我已经在CPanel文件管理器(其0755)中检查了目录权限.

I have checked for permissions of directory in my CPanel File Manager (its 0755).

我在urls.py文件中指定了 +静态(settings.MEDIA_URL,document_root = settings.MEDIA_ROOT).

I have specified + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) in my urls.py file.

我的settings.py是:

My settings.py is:

MEDIA_ROOT = '/my/path/public_html/media'
MEDIA_URL = '/media/'

我正在使用Django = 2.1和CPanel共享主机

I am using Django=2.1 and CPanel Shared Hosting

我知道建议在生产环境中使用Web服务器来存储和提供媒体文件,但是如果我能解决此错误,这将很有帮助.

I know its recommended to have a web server to store and serve media files in Production Environment but it would be helpful if I get a solution of this error.

推荐答案

将此代码添加到 passenger_wsgi.py 文件,并在第4行更改project_name:

add this code to passenger_wsgi.py file and change project_name at line 4:

import os
import sys
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)

更多信息:转到此处

这篇关于无法在CPanel上上传媒体文件(使用django)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆