我正在尝试重新组织我的项目,因为其中的文件非常杂乱无章。主项目文件夹中有一个静态文件夹,应该只包含所有应用程序。所以我将一些 .js 文件重新定位到它们各自的应用程序中。
其中一个文件位于 /static/js/mmm 中,我正在尝试将其移至 mmm/static/mmm。我复制了文件并更改了我的一个模板(位于 mmm/templates/mmm)中的代码
<script src="/static/js/mmm/filemanage.js" type="text/javascript"></script>
至
{% load staticfiles %}
<script src="{% static "mmm/filemanage.js" %}" type="text/javascript"></script>
但是我打开了页面和 js 控制台,它试图访问这样的文件:http:
//fakedomain.com/static/mmm/filemanage.js
据我了解,它应该在 http://fakedomain.com/mmm/static/mmm/filemanage.js
在我的设置文件中,我将“mmm”作为已安装的应用程序,并且
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'assets'),
)
STATIC_URL = '/static/'
不知道我在这里做错了什么,因为我不完全理解 Django 如何搜索静态文件。我也没有把这些东西放在设置文件中,所以我不明白他们在做什么。Django 教程第 6 部分说“Django 的 STATICFILES_FINDERS 设置包含一个查找器列表,这些查找器知道如何从各种来源发现静态文件。默认设置之一是 AppDirectoriesFinder,它在每个 INSTALLED_APPS 中查找“静态”子目录,例如我们刚刚创建的民意调查中的一项。”