我正在尝试重新组织我的项目,因为其中的文件非常无组织。主项目文件夹中有一个静态文件夹,该文件夹应该只包含所有应用程序。所以我将一些.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中查找”静态“子目录,如在我们刚刚创建的民意调查中有一个。“
答案 0 :(得分:1)
我相信你的问题在于这一行:
<script src="{% static "static/parcelManage.js" %}" type="text/javascript"></script>
查看静态文件here的文档。
基本上,您应该将该行更改为:
<script src="{% static "measuring/parcelManage.js" %}" type="text/javascript"></script>