我已经看到过数篇有关此问题的文章,但没有找到我的解决方案。
我正在尝试在Django 1.3开发环境中提供静态文件。
这是我的设定
...
STATIC_ROOT = '/home/glide/Documents/django/cbox/static/'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
'/static/',
)
...
我的urls.py
urlpatterns = patterns('',
...
url(r'^static/(?P<path>.*)$', 'django.views.static.serve',
{'document_root', settings.STATIC_ROOT}
),
...
);
我的/ home / glide / Documents / django / cbox / static /目录就像
css
main.css
javascript
image
尝试访问http://127.0.0.1:8000/static/css/main.css时出现404错误。
我是否必须分别为CSS,JavaScript和图像指定模式?
我混淆了STATIC_ROOT和STATICFILES_DIRS
实际上,我并不是很了解STATIC_ROOT的实用程序。我以为这是我必须放置公用文件的目录。该目录用于生产,这是collectstatic将放置(收集)静态文件的目录。
STATICFILES_DIRS是我所需要的。
由于我处于开发环境中,因此对我来说,解决方案是不使用STATIC_ROOT(或指定其他路径),而在STATICFILES_DIRS中设置我的公用文件目录:
#STATIC_ROOT = (os.path.join(SITE_ROOT, 'static_files/'))
import os
SITE_ROOT = os.path.dirname(os.path.realpath(__file__))
STATICFILES_DIRS = (
os.path.join(SITE_ROOT, 'static/'),
)
也别忘了 from django.conf import settings
没有urls.py应该与问题类似(媒体也是如此)
from django.conf import settings
,当然不要忘记我只想添加到此答案,不要错过s。它应该是STATICFILES_DIRS。我做了STATICFILE_DIRS,让我发疯了45分钟,寻找错误。
我使用
BASE_DIR
内置的const而不是SITE_ROOT
它可以工作。