【问题标题】:Second static files directory in DjangoDjango中的第二个静态文件目录
【发布时间】:2016-07-12 00:06:51
【问题描述】:

我正在尝试在 Django 中创建类似照片库的东西。到目前为止,我正在使用本地 Django 副本并包含 Web 服务器和数据库。

我已经完成了大部分应用程序逻辑,但需要解决静态文件问题。我需要有两个位置 - 一个用于“媒体”,它将是图像,我希望将来将它们存储在 Django 之外 - 现在它放置在 Django 根 /files 目录中。到目前为止,我能够使其与以下内容一起使用:

settings.py

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'files'),)
STATIC_URL = "/photos/"

index.html

{% load static from staticfiles %}
<a href="{%static pic.path %}" class="gallery">Photo</a>

这很好用 - 当我单击该链接时,我可以看到存储在 /files//picture.jpg 中的图片显示为 http://localhost:8000/photos/picture.jpg

但现在我需要在该页面中添加一些 CSS 和 JS 并且不知道如何做到这一点(除了将它们直接放置到 /files 目录之外,我需要避免)

谢谢

【问题讨论】:

标签: python django static directory


【解决方案1】:

你可以像这样解决这个问题。 Сhange这个地方的代码

{% load static from staticfiles %}
<a href="{%static pic.path %}" class="gallery">Photo</a>

然后这样写

{% load staticfiles %}

您可以在静态目录中添加 css 并在模板中包含 css

<link rel="stylesheet" href="{% static 'css/style.css' %}">

【讨论】:

  • 静态不应该用于图片,媒体会更合适。
  • 谢谢大家,最后我已经完成了对上一个答案的小调整。 &lt;link rel="stylesheet" href="{% static 'APP_NAME/css/style.css' %}"&gt;
【解决方案2】:

要回答您的问题,请按照以下步骤操作

静态

创建静态文件: 我们创建静态文件以将 html 文件与这 3 个文件链接: 1/ CSS 文件 2/ JS文件 3/ 图像文件 ..

如何创建静态文件?

1/ 转到项目文件并创建一个文件夹,命名为 static。

static / CSS-JS-Images

2/ 转到设置文件并在 STATIC_URL 之后搜索静态。

添加这两行:

STATIC_ROOT = os.path.join(BASE_DIR, 'static')

STATICFILESDIRS = [ os.path.join(BASE_DIR, 'here you type the direction of the static file') ]

确保您正在导入操作系统库

3/ 最后你应该收集静态,在终端上执行此操作并添加以下代码:

python manage.py collectstatic

您可以在此处了解如何在 html 文件上加载静态文件。

在页面顶部添加此代码:

{% load static %}

添加此代码以将 CSS 文件与 Html 链接。

&lt;link reel = 'stylesheet' href = " {% static 'dir of css file.css' %} "

希望对您有所帮助。

【讨论】:

  • 请编辑此内容,以便所有人都能轻松阅读
猜你喜欢
  • 2020-06-23
  • 2015-02-05
  • 2013-01-10
  • 2015-08-28
  • 2020-12-11
  • 1970-01-01
  • 2013-10-22
  • 1970-01-01
  • 2020-04-18
相关资源
最近更新 更多