【发布时间】: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。我能想到的东西正在某处缓存并且它没有释放它。
-
奇怪.. 尝试在某个时候启动一个新项目,看看它是否有相同的症状。那,或者我猜想咨询一个显灵板。