【问题标题】:Django: Static files in subdirectoryDjango:子目录中的静态文件
【发布时间】:2013-01-10 21:41:43
【问题描述】:

我有这样的静态文件

/static
  base.css
  /core
     /css
       style.css
     /js
       stuff.js

在本地主机上,例如,当我将 href 设置为 /static/core/css/style.css 时,这可以正常工作 但是,当我实时部署时,当我尝试访问该 URL 时出现错误,因为 Django 似乎正在尝试将其与 url 模式匹配。

我真的想保留子目录,我如何确保它把它们都当作静态目录?

谢谢!

【问题讨论】:

    标签: python css django


    【解决方案1】:

    您的问题很可能是您需要配置生产服务器来为您提供静态内容。只要 DEBUG = True,开发服务器默认提供静态文件,但在实时服务器上,您不希望 Django 提供静态内容。相反,您希望前端服务器(Apache 或 Nginx)为您提供文件。

    Django 文档是有关如何在生产中提供静态内容的良好信息来源: https://docs.djangoproject.com/en/dev/howto/static-files/

    【讨论】:

    • 这不是问题...问题是无法识别子目录。我正在使用 gunicorn 作为服务器。
    • 如果您收到 URL 模式错误,则说明您的前端服务器配置不正确,无法为您提供该文件。对于静态内容,您的 Django 应用程序根本不应该参与其中。
    • 重点是:static/style.css 工作正常,但 static/css/style.css 不起作用...我如何同时制作 static/style.css 和 static/css/ style.css 有用吗?
    • 再次强调,这不是 Django 问题,而是前端问题。您的前端服务器(Apache 或 Nginx)应该捕获所有以 /static/ 开头的请求并直接为它们提供服务,从而将 Django 完全排除在静态内容的循环之外。
    • 如果我有 125 个声望,我会否决这个。将用户指向 Django 静态文件文档是徒劳的,这些文档非常松散,不适用于大多数用例,几乎毫无意义。这就是用户来这里询问这个问题的原因!
    猜你喜欢
    • 2015-02-05
    • 2015-08-28
    • 2013-02-09
    • 2020-12-11
    • 1970-01-01
    • 2019-06-04
    • 2013-10-22
    • 2016-07-12
    • 1970-01-01
    相关资源
    最近更新 更多