0

我正在使用 django 1.3 并尝试在我的开发机器(ubuntu 12.04)上部署一个 django 项目(客户端发送)。问题在于静态文件。我的目录结构如下:

project_name
    media
    static
        css
        img
        js
    settings.py

这是我的settings.py:

ROOT = '/home/user/project_name'

MEDIA_ROOT = '%s/media/' % ROOT
MEDIA_URL = '/media/'
STATIC_ROOT = '%s/static/' % ROOT
STATIC_URL = '/static/'
STATICFILES_DIRS = ()

我的站点已完美部署,但缺少 css、js 和 imgs。管理界面也是如此。当我使用链接http://mysite.com/static/js/some.js它给出了 404。

帮助将不胜感激,并且对答案进行投票是习惯性的。

4

4 回答 4

2

我认为您需要运行./manage.py collectstatic:)

于 2013-05-18T12:55:09.207 回答
1

你跑了python manage.py collectstatic吗?看这里

请注意,在生产中您应该将静态文件放在静态服务器中。指南中应该有一些内容。

于 2013-05-18T12:58:33.763 回答
1

您没有提到配置您的 Web 服务器以实际提供静态文件。您需要将其指向 collectstatic 将它们放入的目录。

于 2013-05-18T13:35:14.950 回答
0

还有一点题外话..
使用会更好:
MEDIA_ROOT = os.path.join(os.path.dirname( file ),'media').replace('\','/')
STATIC_ROOT = os. path.join(os.path.dirname( file ),'static').replace('\','/')

并且在开发时的主要 urls.py 中,仅 django 网络服务器:
urlpatterns = patterns('', (r'^media/(?P.*)','django.views.static.serve',{'document_root': os .path.join(os.path.dirname( file ),'media').replace('\','/') }),
(r'^static/(?P.*)','django.views .static.serve',{'document_root': os.path.join(os.path.dirname( file ),'static').replace('\','/')}),

这样,t need collectstatic, u您就不需要在生产服务器上使用它,您将使用 nginx 或其他东西来为您的静态服务器提供服务

于 2013-05-19T09:41:47.217 回答