【问题标题】:Django static files - Changing URLDjango 静态文件 - 更改 URL
【发布时间】:2018-11-29 07:38:19
【问题描述】:

我对 Django 的静态文件有点困惑。

我知道它们不在开发中提供服务,但是在我的生产环境中,我已经尝试了一切来更改正在作为服务器的文件的 URL。它对我没有任何意义。

即使在更改STATIC_URL 之后,仍然通过/static/ 使用我的网址提供所有内容。

settings.py

STATIC_ROOT = os.path.join(BASE_DIR, 'dsadsa')
STATIC_URL = '/ddd/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'app/static'),
]

从这些设置中,我希望我的所有静态文件最终都位于一个名为 dsadsa 的目录中,并且服务器的 URL 为 www.example.com/ddd/file.css 但并非如此,它们总是通过目录 @ 中的 www.example.com/static/file.css 提供服务987654328@.

我在 Heroku 中运行这个项目,没有 Debug = False

谁能帮我了解一下我到底错过了什么?

更新:

我在模板中使用{% load static %}

模板使用示例:

<img alt="background" src="{% static "img/inner-6.jpg" %}" />

【问题讨论】:

  • 请显示模板示例。
  • 你重启了服务器,然后hard刷新了页面吗?
  • 添加了模板用法。是的,重新启动 Dynos 没有任何区别。
  • 注意:我刚刚发现了这个,所以我正在尝试实施。 stackoverflow.com/questions/21141315/…
  • 更新:那没用。仍然总是来自/static/ 我错过了什么?

标签: django heroku django-2.0


【解决方案1】:

我想你在找什么......也许

STATIC_DIR = os.path.join(BASE_DIR, 'ddd')
STATIC_URL = '/ddd/'
STATICFILES_DIRS = [STATIC_DIR,]

以上内容会将base.html 中的{% load staticfiles %} 链接到包含img/css/etc. 的静态文件夹

这会将所有对{% load staticfiles %} 的引用指向基础项目下的静态文件夹。

【讨论】:

  • 我会试试这个。为什么{% load staticfiles %} 而不是{% load static %} - 而且这将无法在应用程序目录中收集我的静态文件,因为它没有在STATICFILES_DIRS 中说明?
  • 这也没有什么不同。
  • 您是否运行过“python manage.py collectstatic”。这会将静态文件的所有内容放入静态根目录。需要注意的是,STATIC_ROOT 应该是你项目根目录下的一个新文件,和原来的'static'文件夹同级。
猜你喜欢
  • 1970-01-01
  • 2021-01-17
  • 2019-03-05
  • 2012-03-16
  • 2016-03-22
  • 2013-01-11
  • 1970-01-01
  • 1970-01-01
  • 2020-12-11
相关资源
最近更新 更多