Django:静态文件未加载

0 投票
3 回答
1937 浏览
提问于 2025-04-17 08:29

我的Django项目里有一个叫 STATIC 的文件夹,里面有子文件夹 cssimagesjsswf。但是我的网站找不到这些文件,导致在终端运行的开发服务器上出现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

根据你的评论,这里有两个选择:

  1. 联系写这段代码的程序员,问问他。
  2. 重新编写静态文件的处理逻辑,可以使用:
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,
    }),

)

撰写回答