2014-02-20 42 views
0

我正在关注如何使用静态文件(https://docs.djangoproject.com/en/1.6/howto/static-files/)的Django 1.6教程。然而,有些东西是不工作...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/setti ngs.py文件,我有STATIC_URL ='/静态/'。在文件夹mysite/myapp/static/myapp中,我有一个名为image1.jpg的文件。

当我运行开发服务器时,它运行良好,如果我只是在我的index.html文件中放置了一些其他的HTML,但是当我尝试像上面那样显示图像时,它只是显示一个小小的白色框,是。此外,如果我去localhost:8000/myapp/static/myapp/image1.jpg,我得到一个404错误。

我假设我正在做某件非常明显的错事......但它是什么?

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

谢谢!

+0

相信你就在你的设置文件中设置STATICFILES_DIRS? – Anup

回答

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}),

这将使静态被搜索并为您的静态文件。

0

IMG SRC = “{%静态'的myapp/image1.jpg'%}” ALT = “图片1”/>