python - Django静态文件在collectstatic后解析
问题描述
我跑了
python manage.py collectstatic
所以我在“/static”文件夹中有我的静态文件的副本。
但是现在 Django 使用来自 /static/myapp/js/myapp.js 的文件,而不是来自 myapp/static/myapp/js/myapp.js 的文件
我应该先改变什么来解决 myapp/static/myapp/js/myapp.js ?
设置.py
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
STATIC_URL = '/static/'
解决方案
来自Django 官方文档:
默认值为
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
首先使用它。
推荐阅读
- c# - 并行 For 循环 Selenium C# - 不是测试
- c# - 使用合成从 UWP 中的 UI 控件创建视频
- python - 在 Rstudio 中集成 python 的关键难点是什么?
- python - JSON 中的 Python SKIP 元素
- azure - AzureRM 应用程序网关后端池 - 有没有办法指定应用服务而不是 FQDN/IP?
- node.js - npm 无法安装“node-sass”
- c++ - 如何正确缩放图形?
- android - DatabaseException:无法将 java.lang.String 类型的对象转换为 android 类型
- openam - 为什么 openam 重定向到错误的 URL?
- amazon-web-services - 从 VPC 内的另一个 Lambda 函数调用 Lambda 函数