我正在使用Django 1.3并且应用程序中的静态文件令人困惑。 我在做什么: 1)设置
STATIC_ROOT = as path to directory 'static' in my project
STATIC_URL = '/static/'
2)在我的urls.py服务
if settings.DEBUG:
urlpatterns += patterns(
'',
url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT}),
)
3)将css和js文件放入我的应用程序目录中的“static”文件夹中。 所以我得到了这样的目录树:
my_project/
main_app/
static/
css/
style.css
js/
secondary_app/
static/
foldername/
file.css
4)我将这两个应用程序添加到settings.py文件中的INSTALLED_APPS。 现在在我的模板中写下跟随行:
<link rel="stylesheet" href="{{ STATIC_URL }}css/style.css" type="text/css" />
Django成功地在目录
中找到了我的css文件my_project/main_app/static/css/
并插入style.css 但是当我写作
<link rel="stylesheet" href="{{ STATIC_URL }}foldername/file.css" type="text/css" />
Django没有插入此文件。
所以我的问题:我做错了什么?为什么我无法从secondary_app目录插入我的css文件? 我还要告诉你更多关于这种情况的信息?
答案 0 :(得分:11)
背后的想法是,您在app/static
下使用自己的静态文件发布所有应用。
在项目中部署应用后,运行python manage.py collectstatic
会复制所有找到的静态文件,这要归功于STATICFILES_FINDERS
设置(其中包含在每个已安装的应用中查找static
目录的查找程序默认情况下,在STATIC_ROOT
目录中,将通过STATIC_URL
开发服务器在STATIC_URL
模式下处理DEBUG
模式,但这是一个有趣的读物:Serving static files in production