skip to Main Content

I have a django app running on cpanel (I’m not sure if is a problem of my
django app or cpanel server), when the debug mode is set up True. I can see all the media files, like profiles pictures or pdf files, etc. But when the debug mode is set up False, you can’t see the media files on the app. This is my configuratios on the settings.py file.

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
    ]
STATIC_URL = '/static/'
STATIC_ROOT = '<app-directory>/public_html/static'

# Media files
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

# Crispy Form Theme - Bootstrap 3
CRISPY_TEMPLATE_PACK = 'bootstrap3'

# For Bootstrap 3, change error alert to 'danger'
from django.contrib import messages
MESSAGE_TAGS = {
    messages.ERROR: 'danger'
}

3

Answers


  1. To deploy a production server, you need to set 3 things

    1. deactivate the DEBUG configuration:

    DEBUG = False

    This disable all extra function for development.

    1. define a static root directory in the settings file:

    STATIC_ROOT = ‘/this/is/a/path/to/statics’

    This, indicate where all the static files should be saved.

    1. run the command to collect all static files:

    python manage.py collectstatic

    This saves all statics files in the directory configured by STATIC_ROOT

    The official documentation for deployment:
    https://docs.djangoproject.com/en/2.1/howto/deployment/checklist/#static-root-and-static-url

    Login or Signup to reply.
  2. I don’t actually solve it yet but you can do as below to solve your issue:

    1 – Setup your media and static root:

    STATIC_URL = '/static/'
    STATIC_ROOT = os.path.join(BASE_DIR, 'static')
    
    MEDIA_URL = '/media/'
    MEDIA_ROOT = os.path.join(BASE_DIR, "media")
    

    2 – Activate your virtual enviroment on cpanel then run this command:

    python manage.py collectstatic
    

    3 – After you did that 2 folder will create at root of your app on cpanel
    "static" and "media" folder copy both of them into "public_html" directory

    4 – go to the setup python app in cpanel and find your app and restart it.

    It will solve the issue for me but every time when i upload some picture i should go and just copy the media files into public_html

    Login or Signup to reply.
  3. I have this issue for 1 day but I found solution. You can install this two packages dj-static static3 with pip:

    $ pip install dj-static static3
    

    then change your wsgi.py file like below:

    .
    .
    .
    from dj_static import Cling
    .
    .
    .
    application = Cling(get_wsgi_application())
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search