Django:静态文件未加载
我的Django项目里有一个叫 STATIC
的文件夹,里面有子文件夹 css
、images
、js
和 swf
。但是我的网站找不到这些文件,导致在终端运行的开发服务器上出现404错误。
我有一个 settings_local.py
文件,在里面我设置了路径(我是在ubuntu 11.04上运行的)。
STATIC_ROOT = '/home/zulaikha/dust.bin/my_project/static/'
STATIC_SERVE_PORT = 80
客户提供的 sample settings-local.py 文件是这样建议的:
# static root
STATIC_ROOT = 'C:/Program Files (x86)/XAMPP/htdocs/static'
STATIC_SERVE_PORT = 8080
我看到过一些类似的问题,但都是关于 STATICFILES
的,我了解到这个是在Django 1.3中引入的。我哪里出错了,应该怎么纠正呢?
3 个回答
0
根据你的评论,这里有两个选择:
- 联系写这段代码的程序员,问问他。
- 重新编写静态文件的处理逻辑,可以使用:
- django-staticfiles(Django 1.2就可以了)
- django.contrib.staticfiles和Django 1.3
1
如果你确实在用django 1.2,那你需要安装django-staticfiles。如果在你的客户端提供的requirements.txt文件里没有看到这个,那可能是他没有把它写进去,或者根本没有用到这个功能,只是通过apache或其他生产服务器指向它。
请按照文档中的说明操作,特别是基础部分:https://docs.djangoproject.com/en/dev/howto/static-files/
你需要把staticfiles添加到你的已安装应用里。通常你也不需要手动添加网址,因为django在运行服务器命令时会自动处理这个。
另外,先确认在本地运行时能正常工作,不要用sudo或者自定义的ip和端口来运行。
0
简单来说,这就是解决这个问题的方法。在项目的 urls.py 文件中,加入以下几行代码:
urlpatterns += patterns('',
url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {
'document_root': settings.STATIC_ROOT,
}),
)