繁体   English   中英

django不提供静态文件

[英]django not serving static files

我正在使用Django==1.5.5和我的django应用程序结构为

--project/
----project/
------settings.py
------urls.py
----app1/
------models.py
------views.py
----staticfiles/
------style.css
----static/
------admin/
--------js/
--------css/
------style.css
----templates/
------header.html
------post.html
------footer.html
----manage.py

/project/settings.py

import os    
DEBUG = False
TEMPLATE_DEBUG = DEBUG    
PROJECT_ROOT = os.path.join(os.path.dirname(__file__), '..')    
ALLOWED_HOSTS = ['localhost', '127.0.0.1']    
MEDIA_ROOT = ''    
MEDIA_URL = ''    
SITE_ROOT = PROJECT_ROOT    
STATIC_ROOT = os.path.join(SITE_ROOT, 'static')    
STATIC_URL = '/static/'    
STATICFILES_DIRS = (
    os.path.join(SITE_ROOT, 'staticfiles'),
)    
TEMPLATE_DIRS = (
    os.path.join(SITE_ROOT, 'templates'),
)

header.html我尝试使用它:

    <head>
        <title>My Site</title>
        {% load static from staticfiles %}
        <link rel="stylesheet" href="{% static 'style.css' %}">
    </head>

但它没有加载mysite.com/static/style.css并给出错误404

我运行python manage.py collectstatic来收集所有静态文件。

为什么加载css文件? 任何配置缺失?

请建议。

我遇到了同样的问题,但我发现的答案都没有。 事实证明,必须正确设置一些部分才能使静态文件正常工作。 注意:我正在使用django 1.6,这个解决方案是用于开发而不是部署。

设置静态文件目录

django-admin.py startproject $site_name
mkdir $site_name/static
mkdir $site_name/static/css
mkdir $site_name/static/javascript
mkdir $site_name/static/images

你的文件夹应该是这样的

$site_name/
    manage.py
    $site_name/
        __init__.py
        settings.py
        urls.py
        wsgi.py
    static/
        css/
        javascript
        images/

编辑$ site_name / $ site_name / setting.py文件并添加

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATICFILES_DIRS =( os.path.join(STATIC_ROOT, 'css/'),
                    os.path.join(STATIC_ROOT, 'javascript/'),
                    os.path.join(STATIC_ROOT, 'images/')
                  )

编辑$ site_name / $ site_name / urls.py并添加

from django.conf import settings
from django.conf.urls.static import static

urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

使用静态网址

{% load staticfiles %}
<a href="{% static "banner.png" %}">

仅用于开发。 在settings.py文件中设置DEBUG = True,并在INSTALLED_APPS中添加“django.contrib.staticfiles”。 接下来,将这些代码行添加到项目的settings.py文件中:

STATIC_URL = '/static/'
STATICFILES_DIRS = (os.path.join(BASE_DIR, "static"),)

根据docs加载静态文件的正确方法是

{% load staticfiles %}
<img src="{% static 'my_app/myexample.jpg' %}" alt="My image"/>

这会奏效

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM