Django 1.6:静态文件

时间:2014-02-20 03:18:59

标签: python django

我正在关注如何使用静态文件(https://docs.djangoproject.com/en/1.6/howto/static-files/)的Django 1.6教程。但是,有些东西不起作用......

这就是我到目前为止......

URLS:

#mysite/urls.py:

from django.conf.urls import patterns, include, url
urlpatterns = patterns('',
url(r'^myapp/', include('myapp.urls')),
)

#mysite/myapp/urls.py:

from django.conf.urls import patterns, include, url
from myapp import views
urlpatterns = patterns('',
url(r'^$', views.index, name='index'),
)

视图:

#mysite/myapp/views.py:

from django.shortcuts import render
def index(request):
    return render(request, 'myapp/index.html')

模板:

#mysite/myapp/templates/myapp/index.html:

{% load staticfiles %}
<img src="{% static "myapp/image1.jpg" %}" alt="Image 1"/>

在mysite / settings.py文件中,我有STATIC_URL ='/ static /'。在mysite / myapp / static / myapp文件夹中,我有一个名为image1.jpg的文件。

当我运行开发服务器时,如果我只在我的index.html文件中放入一些其他HTML,它运行正常,但当我尝试显示上面的图像时,它只显示一个小白框,图像应该是。此外,如果我去localhost:8000 / myapp / static / myapp / image1.jpg,我会收到404错误。

我假设我做的事情显然是错的......但是它是什么?

有一件事 - settings.py中的STATIC_URL是相对于app目录的,而不是项目目录,对吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

当你在生产中运行时,你的静态文件由服务器(Apache,nginx)管理,但是当你的settings.py中的DEBUG设置为true时,你必须告诉django提供静态文件您。为此,请将以下内容添加到您的URLs.py:

from django.conf import settings

(r'^static/(?P<path>.*)$','django.views.static.serve',{'document_root':settings.STATIC_ROOT}),

这将允许静态搜索并提供静态文件。

答案 1 :(得分:0)

img src =“{%static 'myapp / image1.jpg'%}”alt =“图片1”/&gt;