【问题标题】:Django: path to static file is wrong in generated HTMLDjango:生成的 HTML 中静态文件的路径错误
【发布时间】:2016-06-24 13:28:35
【问题描述】:

我有一些 javascript,我想在我正在构建的 Django 网站的特定页面上运行。在我目前拥有的模板中: <script type='text/javascript' src='{% static "/home_page/github_repos.js" %}'></script>

由此生成的 HTML 是: http://localhost:8000/home_page/github_repos.js

问题是我在/static/home_page/ 中有javascript。

如果我在路径中硬编码为: <script type='text/javascript' src='static/home_page/github_repos.js'></script>

一切正常。

但是,我遇到了我不理解的奇怪行为:

如果,在模板中我这样设置路径: <script type='text/javascript' src='{% static "static/home_page/github_repos.js" %}'></script>

HTML 生成器的 src 属性为/static/static/home_page/github_repos.js

真正让我失望的是,如果我在使用模板标签时不将/static/ 放在src 的前面(就像我给出的第一个示例一样),则不会添加/static/,但是,如果我在前面添加/static/,它就会被添加。我需要将/static/ 添加到 src 属性的前面,但只需要一次。

一些相关信息: 我的主页应用程序解析为 '/' 作为 url,所以localhost:8000/ 将您带到主页。

我已在我安装的应用中包含'django.contrib.staticfiles'

最后,STATIC_URL = '/static/'

是否因为我的 home_page 应用解析到 localhost:8000/ 的根地址而出现此问题?

感谢任何帮助。

【问题讨论】:

    标签: django django-templates django-staticfiles


    【解决方案1】:

    这个问题是因为static标签中的路径应该是相对到静态目录。来自the docs

    使用配置的STATICFILES_STORAGE 存储为给定的相对路径

    创建完整的 URL

    您使用的是绝对路径。相反,您应该使用:

    {% static "home_page/github_repos.js" %}
    

    注意前导斜杠的省略。

    【讨论】:

      猜你喜欢
      • 2018-12-09
      • 1970-01-01
      • 1970-01-01
      • 2011-01-21
      • 2014-05-26
      • 2019-08-04
      • 1970-01-01
      • 2014-04-05
      • 2011-06-23
      相关资源
      最近更新 更多