gpt4 book ai didi

css - 你如何链接到 django 1.8 中的站点范围的静态文件?

转载 作者:行者123 更新时间:2023-11-28 17:04:02 24 4
gpt4 key购买 nike

当前结构:

MySite
|--MySite
| |--static
| |--MySite
| |-- site_wide.css
|--MyApp
|--static
|--MyApp
|-- app_specific.js
|-- app_specific.css

设置.py:

STATIC_URL = "/static/"

STATICFILES_DIRS = (
os.path.join(BASE_DIR, "/MySite/static/"),
)

通过以下代码,我能够成功链接到 app_specific.jsapp_specific.css,但无法链接到 site_wide.css

{% load staticfiles %}
<link rel="stylesheet" type="text/css" href="{% static 'MyApp/app_specific.css %}" />
<link rel="stylesheet" type="text/css" href="{% static 'MySite/site_wide.css' %}" />

... site body ...

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

检查生成的 html 后,第二个链接的 href 是:

href="/static/MySite/site_wide.css"

不存在。

我目前的理解是,django 将在 STATIC_URL 定义的路径中搜索我的链接文件,然后(如果未找到)通过 SATICFILES_DIRS 中列出的路径前进,然而,它显然从未查看 STATICFILES_DIRS 中指定的路径。

我是 django 的新手,想了解它的工作原理。其他一些类似的问题提到了诸如 collectstaticfiles 之类的东西,但都非常不清楚。

如有任何帮助,我们将不胜感激!

附言我所知道的一切都来自官方 Django 1.8 教程/文档,所以请不要发布已弃用的答案。仅限 1.8。

最佳答案

尝试将 os.path.join(BASE_DIR, '/MySite/static/') 更改为 os.path.join(BASE_DIR, 'MySite/static'),我。 e.删除转发 /。我想原因是 os.path.join 是如何工作的

>>> os.path.join('/foo', '/bar')
'/bar'
>>> os.path.join('/foo', 'bar')
'/foo/bar'

关于css - 你如何链接到 django 1.8 中的站点范围的静态文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30676929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com