【问题标题】:static files in django 1.6 not found找不到 django 1.6 中的静态文件
【发布时间】:2014-05-02 09:43:32
【问题描述】:

我刚从 django 1.6 开始,我的 css 没有工作,我的图像也没有,我得到一个 404 错误,即使是管理员(s css 也没有工作

这是我的文件结构:

myproject
--myproject
----templates
--static
----css
----media
--myapp
--mp.db
--manage.py

这是我的 base.html:

<link rel="image_src" href="{% block image_src %}http://{{ request.META.HTTP_HOST }}/static/images/logo.png{% endblock %}" />
<link rel="stylesheet" media="screen" href="{{ STATIC_URL }}css/utils.css">
<link rel="stylesheet" media="screen" href="{{ STATIC_URL }}css/{% block style_link %}style{% endblock %}.css">
   ...
<div id="cont_footer" class="container centerAuto">
<img src="{{ MEDIA_URL }}images/logo_footer.png" alt="" />
</div>

这是我的设置:

PROJECT_ROOT = os.path.dirname( __file__ )
PROJECT_NAME = os.path.basename(PROJECT_ROOT)

STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static/')
STATIC_URL = '/static/'

# Additional locations of static files
STATICFILES_DIRS = (
    os.path.join(PROJECT_ROOT, 'static/'),
)

STATICFILES_FINDERS = (
     'django.contrib.staticfiles.finders.FileSystemFinder',
     'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
TEMPLATE_CONTEXT_PROCESSORS = (
    'django.contrib.auth.context_processors.auth',
    'django.core.context_processors.static',
)
MEDIA_URL = STATIC_URL +'media/'
MEDIA_ROOT = os.path.join(PROJECT_ROOT, *MEDIA_URL.strip("/").split("/"))

在 urls.py 中:

urlpatterns = patterns('',
url(r'^$', TemplateView.as_view(template_name='index.html'), name="index"),
    url(r'^admin/', include(admin.site.urls)),
) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

我做错了什么?三天以来我就因为这个把头发拔掉了!!

谢谢

【问题讨论】:

    标签: django static django-staticfiles django-1.6


    【解决方案1】:

    在您的项目根目录中设置“静态”文件夹,其中 settings.py 存在

    在settings.py中

    STATIC_ROOT = os.path.join(PROJECT_DIR,'static')
    STATIC_URL = '/static/'
    
    STATICFILES_DIRS = (
                    os.path.join(PROJECT_DIR,'static'),
    )
    TEMPLATE_DIRS = (
                    os.path.join(PROJECT_DIR,'template'),
    )
    

    在base.html中

    <link rel="stylesheet" type="text/css" href="{% static 'css/demo.css' %}" /> 
    
    <script type="text/javascript" src="{% static 'js/jquery.min.js' %}"></script>
    

    在包含 base.html 的其他模板文件中

    {% extends "base.html" %}
    {% load static %}
    
    
    <script type="text/javascript" src="{% static 'js/jquery.min.js' %}"></script>
    
    
    <div id="yourID" class="yourClass">
        <img src="{% static "images/something.gif" %}" alt="something" >
    </div>
    

    urls.py

    from django.conf.urls import patterns, include, url
    from wepl.views import home
    from django.conf.urls.static import static
    from django.contrib.staticfiles.urls import staticfiles_urlpatterns
    from myApp import settings
    from django.views.generic.base import TemplateView
    from views import *
    
    urlpatterns = patterns('',
        url(r'^$', 'myApp.views.home', name='home'),
    
        )
    
    urlpatterns += staticfiles_urlpatterns()
    

    【讨论】:

    • 我的静态文件夹在我的问题中提到的根目录下,我做了你建议的更改,但它仍然无法正常工作!我做错了什么?因为这两天没有,我把头发拉下来了!!
    猜你喜欢
    • 2014-03-20
    • 2013-11-22
    • 2013-11-29
    • 2014-02-26
    • 2021-08-27
    • 2014-11-10
    • 2011-08-26
    • 2020-06-22
    • 2021-08-16
    相关资源
    最近更新 更多