静态文件在django 1.6中找不到 [英] static files in django 1.6 not found

查看:182
本文介绍了静态文件在django 1.6中找不到的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我刚刚开始使用django 1.6,我的CSS不能正常工作,我的图像,404错误,甚至管理员(css不工作



这是我的文件结构:

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

这是我的base.html:

 < link rel =image_srchref ={%block image_src%} http:// {{request.META.HTTP_HOST}} / static / images / logo.png {%endblock% }/> 
< link rel =stylesheetmedia =screenhref ={{STATIC_URL}} css / utils.css>
< link rel =stylesheet media =screenhref ={{STATIC_URL}} css / {%block style_link%} style {%endblock%}。css>
...
< div id =cont_footer class =container centerAuto>
< img src ={{MEDIA_URL}} images / logo_footer.pngalt =/>
< / 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 /'

#静态文件的附加位置
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)

我做错了什么?
$ b

感谢

解决方案

将项目的根目录中的文件夹static设置为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 =stylesheettype =text / csshref ={%static'css / demo.css'%}/> 

< script type =text / javascriptsrc ={%static'js / jquery.min.js'%}>< / script>

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

  {%extendsbase.html%} 
{%load static%}


<脚本类型=text / javascriptsrc ={%static'js / jquery.min.js'%}>< / script>


< div id =yourIDclass =yourClass>
< img src ={%staticimages / something.gif%}alt =something>
< / div>

urls.py

来自django.conf.urls导入模式的,包含来自wepl.views的url 
import home
from django.conf.urls.static import静态
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 )


I'm just starting with django 1.6 and my css is not working neither my images, I get a 404 error, even the admin(s css is not working

Here is my file structure :

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

This is my 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>

This is my settings :

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("/"))

In 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)

What am I doing wrong?I'm pulling my hair off because of this since three days now!!

Thanks

解决方案

Make folder "static" in root of your project where settings.py exists

In 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'),
)

In base.html

<link rel="stylesheet" type="text/css" href="{% static 'css/demo.css' %}" /> 

<script type="text/javascript" src="{% static 'js/jquery.min.js' %}"></script>

In other template files in which you include 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()

这篇关于静态文件在django 1.6中找不到的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆