【问题标题】:django refuses to recognize static folder?django 拒绝识别静态文件夹?
【发布时间】:2014-07-30 02:52:30
【问题描述】:

更新 - 它正在正确读取静态文件夹。如果我创建了一个 test.css 文件,然后尝试转到 http://myserver:8000/static/css/test.css,它将获取它。

问题是当我尝试将新的 bootstrap.css 放入该文件夹时。它忽略了我有一个自定义的,而是使用 python2.7/dist/mezzanine/.... 文件夹中的那个。我收集模板时没有这个问题。 base.html 是自定义的,它使用我的而不是默认存储的副本,那么为什么不对静态文件执行此操作?

我尝试了许多不同的 stackoverflow 和 google 示例,但我的 django/mezzanine 应用程序似乎不希望识别我正在使用的静态文件。

我的静态文件位于'/opt/myproject/static/'

settings.py

PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
STATIC_URL = "/static/"
STATIC_ROOT = os.path.join(PROJECT_ROOT, STATIC_URL.strip("/"))
STATIC_DIRS = (os.path.join(PROJECT_ROOT, "static"),)

我会注意到,即使对路径进行硬编码也无济于事 -

STATIC_ROOT = "/opt/myproject/static/"
STATIC_DIRS = ("/opt/myproject/static",)

base.html 是 Mezzanine 默认的,所以这里是它如何寻找静态文件 -

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

如果我将位置硬编码到 css 中,它将找不到文件 -

<link rel="stylesheet" href="/opt/myproject/static/css/bootstrap.css">

我不知道为什么它除了夹层主文件夹之外没有在任何地方提取静态文件。如果我做一个 findstatic 它永远不会找到我的文件夹只有默认 -

python manage.py findstatic css/bootstrap.css
Found 'css/bootstrap.css' here:
  /usr/local/lib/python2.7/dist-packages/mezzanine/core/static/css/bootstrap.css

我做错了什么?

编辑以包含我有 DEBUG = True

我已经完成了 urls.py 的技巧 -

from django.contrib.staticfiles.urls import staticfiles_urlpatterns

urlpatterns += staticfiles_urlpatterns()

我也做过 python manage.py runserver --unsecure

【问题讨论】:

  • 试试STATIC_DIRS = (os.path.join(PROJECT_ROOT, "static/"),)STATIC_ROOT = os.path.join(PROJECT_ROOT, "static/") 注意尾部斜杠
  • 不知道这怎么可能。尝试暂时删除mezzanine/core/static/css/bootstrap.css,看看它是否会退回到您的自定义项
  • @Ben - 这太奇怪了。我将它重命名为 bootstrap.old 是的,然后它会在我的项目静态文件夹中选择我的自定义 bootstrap.css。它变得更奇怪了。如果我将其重命名,它将保留我的自定义 CSS。我能想到的东西正在某处缓存并且它没有释放它。
  • 奇怪.. 尝试在某个时候启动一个新项目,看看它是否有相同的症状。那,或者我猜想咨询一个显灵板。

标签: django mezzanine


【解决方案1】:

运行./manage.py collectstatic 这应该会提取所有新的静态文件。这也会告诉您您的 STATIC_ROOT 和 STATIC_URL 是否设置正确。

【讨论】:

  • collectstatic 可以正常工作并复制所有文件,但它仍然无法识别我更改的文件。
  • 您是在生产环境中部署项目还是只是开发环境?
  • 在这里更新,问题不是生产。我有一个使用 mod_wsgi 生产的环境,并且静态文件是正确的。开发环境这是一个非常有效的问题,我无法在开发中进行测试......
猜你喜欢
  • 2016-06-15
  • 1970-01-01
  • 2016-02-02
  • 1970-01-01
  • 2021-06-22
  • 1970-01-01
  • 2018-03-13
  • 1970-01-01
  • 2021-12-05
相关资源
最近更新 更多