Django static文件在collectstatic之后解析

时间:2019-09-13 14:52:20

标签: python django

我已经跑步

  

python manage.py collectstatic

所以我在“ / static”文件夹中有我的静态文件的副本。

但是现在Django使用的是/static/myapp/js/myapp.js中的文件,而不是myapp / static / myapp / js / myapp.js中的文件

我应该做什么更改才能首先解析myapp / static / myapp / js / myapp.js?

settings.py

STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
STATIC_URL = '/static/'

1 个答案:

答案 0 :(得分:1)

来自Django official documentation

  

STATICFILES_FINDERS的默认值为:

[
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
]
  

默认设置将查找存储在STATICFILES_DIRS设置(使用django.contrib.staticfiles.finders.FileSystemFinder)和每个应用程序的静态子目录(使用django.contrib.staticfiles.finders.AppDirectoriesFinder)中的文件。如果存在多个具有相同名称的文件,则将使用找到的第一个文件。

因此,在您的settings.py中,添加以下内容:

STATICFILES_FINDERS = [
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'django.contrib.staticfiles.finders.FileSystemFinder',
]

基本上,我们正在通过交换默认条目来覆盖STATICFILES_FINDERS,以便首先使用AppDirectoriesFinder