Django 1.3静态文件放在应用程序目录中

时间:2011-04-07 12:18:48

标签: django

我正在使用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文件? 我还要告诉你更多关于这种情况的信息?

1 个答案:

答案 0 :(得分:11)

背后的想法是,您在app/static下使用自己的静态文件发布所有应用。

在项目中部署应用后,运行python manage.py collectstatic会复制所有找到的静态文件,这要归功于STATICFILES_FINDERS设置(其中包含在每个已安装的应用中查找static目录的查找程序默认情况下,在STATIC_ROOT目录中,将通过STATIC_URL

提供

开发服务器在STATIC_URL模式下处理DEBUG模式,但这是一个有趣的读物:Serving static files in production