我是一个 Django 新手,正在处理我的第一个项目并且遇到了静态文件问题。
我创建了一个简单的身份验证系统,使用django.contrib.auth
由两个模板组成:mysite/templates/index.html
和mysite/templates/registration/login.html
. 我有全局静态内容mysite/static
,我希望能够访问所有应用程序呈现的所有模板。
mysite/templates/index.html
包含在我访问 url 时<img src="{{ STATIC_URL }}pics03.jpg"/>
呈现为和加载良好的内容"static/pics03.jpg"
localhost:8000/
mysite/templates/registration/login.html
contains当我访问 url 时<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 的静态内容。任何人都可以对此有所了解吗?