gpt4 book ai didi

Django - 为 javascript 、 css 和图像文件提供服务的静态文件

转载 作者:行者123 更新时间:2023-12-04 10:43:49 26 4
gpt4 key购买 nike

我需要在我的 Django 项目中处理静态文件。

我想将它们放在/static 目录中,并能够在我的模板中引用它们。

我一直在阅读文档中的“管理静态文件”,但我很困惑。我已按照说明进行操作,但无法使其正常工作。

1)我已将静态文件放在项目中每个应用程序下的/static 中。

2) django.contrib.staticfiles 包含在我的 INSTALLED_APPS 下。

我在设置中设置了以下变量:

STATIC_ROOT = '/static/'
STATIC_URL = '/static/'

在我的模板中,我有以下几行:
<script type="text/javascript" src={{ STATIC_URL }}/a_ajax.js></script> 

但是,当我打开页面并查看源代码时,该行是:
<script type="text/javascript" src=/a_ajax.js></script>

似乎没有传递给模板。

我究竟做错了什么?

最佳答案

考虑到您使用的是 Django 1.4 或更高版本,这里是我的解释:

在 Django 1.3 中,静态文件与上传的文件(媒体)分开,现在,它们有了自己的家。

要在开发环境中提供静态文件(css、js、图像等),您需要:

  • 将这些文件放在各自应用程序的 static 中子目录
  • 确保您有 django.contrib.staticfiles.finders.AppDirectoriesFinder在您的 settings.py (这是默认行为)

  • 目录结构将是:
    __| project_root/
    ____| your_app/
    ______| static/
    ________| test.css
    ________| some.js

    所以请求到 http://localhost:8000/static/test.css将被路由到 your_app/static/test.css .

    请注意,您不需要更改 STATIC_ROOT设置,直到您进入生产环境,您将需要运行 ./manage.py collectstatic .
    collectstatic命令将从应用程序的 static 收集文件子目录并将它们全部放在一个唯一的位置(在 STATIC_ROOT 中定义的目录)

    如果您打算在生产中部署您的项目,请参阅 ./manage.py collectstatic documentation .

    关于Django - 为 javascript 、 css 和图像文件提供服务的静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6300820/

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