【发布时间】:2012-04-30 07:17:06
【问题描述】:
我是 Django 新手,正在处理我的第一个项目,但遇到了静态文件问题。
我使用django.contrib.auth 创建了一个简单的身份验证系统,其中包含两个模板:mysite/templates/index.html 和mysite/templates/registration/login.html。我在 mysite/static 中有全局静态内容,我希望能够访问所有应用程序呈现的所有模板。
mysite/templates/index.html 包含<img src="{{ STATIC_URL }}pics03.jpg"/>,它呈现为"static/pics03.jpg" 并且当我访问网址localhost:8000/ 时加载正常
mysite/templates/registration/login.html 包含<img src="{{ STATIC_URL }}pics03.jpg"/>,它也呈现为"static/pics03.jpg",并且在我访问网址"localhost:8000/accounts/login/" 时不会加载
在我的 urls.py 中有:
urlpatterns = patterns('',
url(r'^$', 'mysite.views.home'), # plays index.html template
url(r'^accounts/login/$', 'django.contrib.auth.views.login'),
在我的 settings.py 我有:
PROJECT_DIR = os.path.dirname(__file__)
STATICFILES_DIRS = (
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
os.path.join(PROJECT_DIR,'static'),
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
STATIC_URL = '/static/'
STATIC_ROOT = ''
我的印象是 Django 应该在 STATICFILES_DIRS 中查找全局静态内容,但即使我将其中的 url 更改为静态文件夹的绝对路径,它也找不到 login.html 的静态内容。任何人都可以对此有所了解吗?
【问题讨论】:
标签: python django static django-static