Django — Can't get static CSS files to load

后端 未结 20 1691
借酒劲吻你
借酒劲吻你 2020-11-29 23:45

I\'m running Django\'s development server (runserver) on my local machine (Mac OS X) and cannot get the CSS files to load.

Here are the relevant entries

相关标签:
20条回答
  • 2020-11-30 00:18

    Have you added into your templates:

    {% load staticfiles %}
    

    This loads what's needed, but for some reason I have experienced that sometimes work without this... ???

    0 讨论(0)
  • 2020-11-30 00:19

    I tried this model and it worked.

    Changes in settings as per the django project created with shell

    "django-admin.py startproject xxx"# here xxx is my app name
    

    modify the folder as below structure loading our static files to run on server

    Structure of xxx is:

    >     .
    >     |-- manage.py
    >     |-- templates
    >     |   `-- home.html
    >     `-- test_project
    >         |-- __init__.py
    >         |-- settings.py
    >         |-- static
    >         |   |-- images
    >         |   |   `-- 01.jpg
    >         |   |-- style.css
    >         |-- urls.py
    >         `-- wsgi.py
    

    - modifications in Settings.py

    import os
    INSTALLED_APPS = (    'xxx',# my app is to be load into it)
    
    STATIC_ROOT = ''
    STATIC_URL = '/static/'
    PROJECT_DIR = os.path.dirname(__file__)
    TEMPLATE_DIRS = (      os.path.join(PROJECT_DIR, '../templates'),)#include this 
    

    - modifications in urls.py

    from django.conf.urls import patterns, include, url
    from django.views.generic import TemplateView
    
    class DirectTemplateView(TemplateView):
        extra_context = None
        def get_context_data(self, **kwargs):
            context = super(self.__class__, self).get_context_data(**kwargs)
            if self.extra_context is not None:
                for key, value in self.extra_context.items():
                    if callable(value):
                        context[key] = value()
                    else:
                        context[key] = value
            return context
    
    urlpatterns = patterns('', 
        url(r'^$', DirectTemplateView.as_view(template_name="home.html")), )
    

    - home.html

    <html>
        <head>
            <link href="{{STATIC_URL}}style.css" rel="stylesheet" type="text/css">
        </head>
        <body>
            <h1>This is home for some_app</h1>
          <img src="{{STATIC_URL}}/images/01.jpg" width=150px;height=150px; alt="Smiley ">
        </body>
    </html>
    
    0 讨论(0)
  • 2020-11-30 00:20

    If you set DEBUG=FALSE you need to do follow steps

    In your urls.py file: add this line

    from django.views.static import serve
    
    url(r'^media/(?P<path>.*)$', serve,{'document_root': settings.MEDIA_ROOT}),
    url(r'^static/(?P<path>.*)$', serve,{'document_root': settings.STATIC_ROOT}),
    
    
    0 讨论(0)
  • 2020-11-30 00:20

    I have the same issue (ununtu 16.04 server).

    This helped me

    python manage.py collectstatic --noinput

    0 讨论(0)
  • 2020-11-30 00:21

    Another simple thing to try is to stop, and then restart the server e.g.

    $ python manage.py runserver
    

    I looked into the other answers, but restarting the server worked for me.

    0 讨论(0)
  • 2020-11-30 00:27

    add following in settings.py

    STATIC_URL = '/static/'
    MEDIA_URL = '/media/'
    STATIC_ROOT = os.path.join(BASE_DIR, 'static')  
    MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
    
    0 讨论(0)
提交回复
热议问题