Django,提供静态文件

时间:2016-01-06 06:09:01

标签: python django

我有多个应用,每个应用都有静态文件。 而且我想添加一些像jQuery这样的全局静态文件。

我的项目结构就像

--mysite

  |------app1

     |-----static

  |------app2

     |-----static

  |------app3

     |-----static


  |------media
  |------static    (global one)

     |-----app1
     |-----app2
     |-----app3

我的设置文件就像

STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
STATIC_URL = '/static/'

MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
MEDIA_URL = '/media/'

和url文件就像

urlpatterns = [
url(r'^$', 'home.views.index'),
url(r'^admin/', include(admin.site.urls)),
url(r'^users/', include('users.urls')),
url(r'^projects/', include('cvproject.urls'))
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + \
          static(settings.STATIC_URL,     document_root=settings.STATIC_ROOT)

我正在按照Django网站上的示例开发Web应用程序。

当我在模板中加载静态文件时,它只能找到各个目录中的文件。我如何加载全局静态文件?

谢谢

2 个答案:

答案 0 :(得分:1)

确保您的STATICFILES_FINDERS in settings.py

中包含FileSystemFinder
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder'
)

然后定义一个额外的目录,在STATICFILES_DIRS中包含其他静态文件,如:

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)

答案 1 :(得分:1)

Staticfiles会自动在多个位置查找静态文件。这与" finders" (STATICFILES_FINDERS)。

  1. AppDirectoriesFinder:寻找" / static /"您的应用目录
  2. STATICFILES_DIRS:FileSystemFinder的发现者
  3. 您可以在静态文件中使用这些工具,我认为您可以使用STATICFILES_DIRS执行您想要执行的操作。你可以找到STATICFILES_DIRS examples