Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Doesn't Nginx support Django admin static files

My django site user-end is running good with the static files but don't know why all the admin panel static files is not working. While it's working normally but not with linux any idea ??

nginx .conf file

 upstream sample_project_server {
  # fail_timeout=0 means we always retry an upstream even if it failed
  # to return a good HTTP response (in case the Unicorn master nukes a
  # single worker for timing out).
  server unix:/home/me/SPEnv/run/gunicorn.sock fail_timeout=0;
}
server {

listen   800;
server_name <your domain name>;

client_max_body_size 4G;
access_log /home/me/logs/nginx-access.log;
error_log /home/me/logs/nginx-error.log;

location /static {
    root   /home/me/DjangoProjects/SP/SP;
}

location / {

    # an HTTP header important enough to have its own Wikipedia entry:
    #   http://en.wikipedia.org/wiki/X-Forwarded-For
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;


    # enable this if and only if you use HTTPS, this helps Rack
    # set the proper protocol for doing redirects:
    # proxy_set_header X-Forwarded-Proto https;

    # pass the Host: header from the client right along so redirects
    # can be set properly within the Rack application
    proxy_set_header Host $http_host;

    # we don't want nginx trying to do something clever with
    # redirects, we set the Host: header above already.
    proxy_redirect off;

    # set "proxy_buffering off" *only* for Rainbows! when doing
    # Comet/long-poll stuff.  It's also safe to set if you're
    # using only serving fast clients with Unicorn + nginx.
    # Otherwise you _want_ nginx to buffer responses to slow
    # clients, really.
    # proxy_buffering off;

    # Try to serve static files from nginx, no point in making an
    # *application* server like Unicorn/Rainbows! serve static files.
    if (!-f $request_filename) {
        proxy_pass http://sample_project_server;
        break;
    }
}

# Error pages
error_page 500 502 503 504 /500.html;
location = /500.html {
    root   /home/me/DjangoProjects/SP/SP;
}

}

and settings.py

Static files (CSS, JavaScript, Images)

https://docs.djangoproject.com/en/1.8/howto/static-files/

STATIC_URL = '/static/'
STATIC_ROOT = '/home/me/DjangoProjects/SP/SP/static/'
STATICFILES_DIRS = (
    # os.path.join(BASE_DIR, 'SP','static/admin'),
        '/home/me/DjangoProjects/SP/SP/static/',
        '/home/me/SPEnv/lib/python2.7/site-packages/django/contrib/admin/static'
    )                                                                       
like image 495
sheikhsalman08 Avatar asked Nov 10 '17 15:11

sheikhsalman08


People also ask

Does Django serve static files?

django.contrib.staticfiles provides a convenience management command for gathering static files in a single directory so you can serve them easily. This will copy all files from your static folders into the STATIC_ROOT directory. Use a web server of your choice to serve the files.

How do I set Nginx to serve static files?

To serve static files with nginx, you should configure the path of your application's root directory and reference the HTML entry point as the index file.


1 Answers

You need to add the directory for the admin static files to your STATICFILES_DIRS list before you run collectstatic. Something like this:

STATICFILES_DIRS = [
    '/project/src/static',
    '/usr/local/lib/python3.6/site-packages/django/contrib/admin/static',
]

Where the first entry is the path to your app's static files and the second is the location of the django admin package.

like image 66
tunecrew Avatar answered Sep 20 '22 17:09

tunecrew