【问题标题】:can't link css file in template无法在模板中链接 css 文件
【发布时间】:2012-11-29 12:10:30
【问题描述】:

我是 django 新手,我正在尝试将 css 文件链接到模板。

  1. 我正在使用开发服务器
  2. 在我的 settings.py 项目中,我有应用程序 'django.contrib.staticfiles'
  3. 在我的project/app 文件夹中,我有static 文件夹,在file.css 里面
  4. index.html 文件中(在project/app/templates/app 内)我尝试使用<link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}/file.css" /> 并尝试使用STATIC_URL

不幸的是变量 STAIC_URL(和 MEDIA_URL)是空字符串,所以结果 url 是 /file.css

谁能帮助我?我知道 settings.py 中的一些 STATIC_URL 变量在哪里,但是 StaticFinder 应该在 app/static 中自动找到文件,不是吗?

【问题讨论】:

    标签: django django-templates


    【解决方案1】:

    您需要使用 RequestContext 或 render 快捷方式,以确保运行上下文处理器并将变量添加到您的模板中。

    【讨论】:

    • 完美,谢谢!还有一个问题 - 它可以在非开发服务器上工作吗?
    • 取决于你所说的“工作”是什么意思。正如文档所解释的,在生产服务器上,您需要设置自己的配置来提供静态文件。完成此操作并适当设置 STATIC_URL 后,上述操作将起作用。
    • 这很愚蠢 - 所以当我制作自己的应用程序并将应用程序提供给某人时,如果他想使用它,他必须在他的项目 settings.py 中添加一些静态文件的静态路径?
    • 我不明白。如果有人在运行他们自己的 Django 站点,那么是的,他们当然需要设置一些东西来为该站点提供静态文件。与重用来自不同项目的应用无关:项目中的所有应用都将使用相同的静态设置。
    【解决方案2】:

    这里是Django doc page,其中包含所有必需的信息。

    您可能忘记在您的setting.py 中设置STATIC_ROOTSTATIC_URL,然后运行命令./manage.py collectstatic,它将收集项目静态目录中所有应用程序的所有静态文件。

    【讨论】:

      猜你喜欢
      • 2013-07-03
      • 1970-01-01
      • 2017-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-09
      • 2020-02-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多