我使用的是 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 文件? 关于这种情况我需要告诉你更多什么?
最佳答案
其背后的想法是,您可以在 app/static
下提供所有应用及其自己的静态文件。
在项目中部署应用程序后,运行python manage.pycollectstatic
将复制通过STATICFILES_FINDERS
设置找到的所有静态文件(其中包含一个查找程序的查找器)默认情况下每个已安装应用程序中的 static
目录)位于 STATIC_ROOT
目录中,然后将通过 STATIC_URL
开发服务器在DEBUG
模式下处理STATIC_URL
模式,但这是一个有趣的阅读:Serving static files in production
关于Django 1.3 静态文件放置在应用程序目录中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5580902/