【发布时间】:2011-10-17 04:50:14
【问题描述】:
我是第一次编写 Django 应用程序,如果我有点落后,请耐心等待。
这是我的 settings.py 的摘录:
STATIC_ROOT = os.getcwd().replace('\\','/') + '/static'
STATIC_URL = '/static_files/'
STATICFILES_DIRS = (
os.getcwd().replace('\\','/') + '/static'
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
注意:我希望os.getcwd()... 行有效。我很确定这不是我的问题,但如果这是一个问题,请告诉我。它是用于本地开发目的的占位符,所以当我部署时不用担心它会保留在那里。
我的第一个问题是模板变量似乎不起作用。
摘自我的主模板文件:
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL|default:'/static_files/' }}css/base.css" />
我最初只有{{ STATIC_URL }},但它什么也没返回,所以我尝试添加|default:'...'。这确实成功地在生成的 HTML 中生成了给定的字符串,但仍然没有工作,这让我想到了我的第二个(更重要的是,老实说)问题。
我根本无法使用静态文件。我在这里尝试了几种不同的方法。我尝试在上述每个 STATIC_* 变量中放置绝对路径和相对路径(以各种组合),我尝试使用等效的 MEDIA_URL 变量,并尝试将以下内容放入我的 urls.py:
urlpatterns = ('',
# ...
(r'^static_files/(?P<path>.*)$',
'serve', {
'document_root': '/path/to/django/dir/static_files/',
'show_indexes': True
}
),
)
(我从http://www.arthurkoziel.com/2008/09/02/handling-static-files-django/获取了上面的sn-p。)
现在我应该注意,一旦初始开发完成,我希望最终能够从并行 Apache 进程中提供静态文件,但我仍然很想知道我做错了什么。我无法在网上或 StackOverflow 上找到关于静态文件的相当全面的教程。
非常感谢所有帮助。
编辑:如果很重要,我在 Windows 7 上使用 Python 2.7。
【问题讨论】:
标签: django variables django-templates static-files