我正在使用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。
帮助将不胜感激,并且投票的答案是自定义的。
答案 0 :(得分:2)
我认为您需要运行./manage.py collectstatic
:)
答案 1 :(得分:1)
答案 2 :(得分:1)
您没有提及将Web服务器配置为实际提供静态文件。您需要将它指向collectstatic将它们放入的目录。
答案 3 :(得分:0)
还有一点offtopic ..
使用时会更好:
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 webserver:
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 )) , '静态')。代替( '\', '/')}),
通过这种方式,你不会t need collectstatic, u
在生产服务器上需要它,你将使用nginx或其他东西来服务你的静态