Django没有找到我的静态文件

时间:2014-05-28 14:35:08

标签: django static code-organization static-files relocation

我正在尝试重新组织我的项目,因为其中的文件非常无组织。主项目文件夹中有一个静态文件夹,该文件夹应该只包含所有应用程序。所以我将一些.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中查找”静态“子目录,如在我们刚刚创建的民意调查中有一个。“

1 个答案:

答案 0 :(得分:1)

我相信你的问题在于这一行:

<script src="{% static "static/parcelManage.js" %}" type="text/javascript"></script>

查看静态文件here的文档。

基本上,您应该将该行更改为:

<script src="{% static "measuring/parcelManage.js" %}" type="text/javascript"></script>