我正试图在我的Mezzanine网站上安装一个新模板。我的Mezzanine版本是4.2.2,Django版本是1.9.7
带
DEBUG = true
我创建了一个名为"template_app"的新应用程序,并加载到settings.py:
INSTALLED_APPS = (
"template_app",
...
)
我创建了目录结构,并复制了默认的夹层文件(基本、索引…),如:
template_app
static
css
img
js
templates
base.html
index.html
includes
footer_scripts.html
我下载了一个引导模板,并用模板中的css js img文件夹和index.html替换了上面的内容。(我使用的模板:https://startbootstrap.com/template-overviews/business-casual/)然后链接base.html中的css和javascript:
(所有css)
{% compress css %}
<link rel="stylesheet" href="{% static "css/bootstrap.css" %}">
<link rel="stylesheet" href="{% static "css/bootstrap.min.css" %}">
<link rel="stylesheet" href="{% static "css/business-casual.css" %}">
<link rel="stylesheet" href="{% static "css/mezzanine.css" %}">
<link rel="stylesheet" href="{% static "css/bootstrap-theme.css" %}">
(全部js)
{% compress js %}
<script src="{% static "mezzanine/js/"|add:settings.JQUERY_FILENAME %}"></script>
<script src="{% static "js/bootstrap.js" %}"></script>
<script src="{% static "js/bootstrap.min.js" %}"></script>
<script src="{% static "js/jquery.js" %}"></script>
<script src="{% static "js/bootstrap-extras.js" %}"></script>
我不知道我做错了什么,也不知道我错过了什么。我的网站在应用程序中找不到css和javascript文件:
Not Found: /css/bootstrap.min.css/
Not Found: /css/business-casual.css/
[07/Jan/2017 08:12:30] "GET /css/bootstrap.min.css/ HTTP/1.1" 404 1716
[07/Jan/2017 08:12:30] "GET /css/business-casual.css/ HTTP/1.1" 404 1720
Not Found: /js/jquery.js/
...
我试着根据其他人的解决方案修改urls.py和setting.py的其他部分,但它们似乎不起作用。我做错了什么?
--添加2017-01-09-
与findstatic的检查将我链接到了正确的路径。除了bootstrap.css,它链接了我下载的模板中的css文件和夹层模板。
我对静态文件也有同样的问题,但它确实需要我设置"static_ROOT"设置,因为我的路径偏离了路线。
由于我使用的是自定义主题,我不得不更改settings.py中的"STATIC_ROOT"路径,以指向我的应用程序静态文件,而不是指向默认的PROJECT_ROOT。
所以我添加了这样的内容。。。
## Custom Theme Path (For Static Files)
THEME_URL = "template_app/"
并将"STATIC_ROOT"更改为…
STATIC_URL = "/static/"
STATIC_ROOT = os.path.join(PROJECT_ROOT, THEME_URL, STATIC_URL.strip("/"))
确保再次重新启动测试服务器(如果需要,请手动),自动启动不会识别对静态/目录的更改。
我在谷歌上发现了这个问题,当时我正在为同样的问题寻找解决方案。我设法解决了以下步骤:
- 首先,仔细检查
template_app
是否列在所有Mezzanine应用程序之上的INSTALLED_APPS
上 - 重新运行findstatic
- 如果仍然找不到,请运行collectstatic。虽然findstatic找不到我想要的主题(但会找到其他主题),但collectstatic设法找到了它并链接了它的静态文件