django - 在 Mezzanine 中找不到静态文件

标签 django mezzanine static-files

我正在尝试在我的夹层网站上安装一个新模板。我的夹层是 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

我下载了一个 bootstrap 模板,并将上面的 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("/"))

关于django - 在 Mezzanine 中找不到静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41519534/

相关文章:

python - 在模板 if 语句中将字符串连接在一起

python - 删除对象时从媒体中删除图像

django测试客户端总是返回301

python - Django [Mezzanine CMS] 项目未部署到 Heroku

python - 不允许在/空静态前缀处配置不当 - Django

Django 模板渲染缓慢

python - Django - 在基于类的 FormView 中捕获参数

python - Django : Mezzanine front search module

python - Django 的 collectstatic 有什么意义?

python - 如何在 Flask 中提供静态文件