gpt4 book ai didi

python - Lektor CMS : Can't get lektor-tags to work properly, 在服务器上找不到请求的 URL

转载 作者:行者123 更新时间:2023-12-04 14:56:33 26 4
gpt4 key购买 nike

我正在尝试构建一个 博客 使用 lektor CMS ,为此..我需要一个 标签系统 , 搜索后我在 lektor docs 上找到了一个 lektor 插件叫 lektor-tags我遵循了文档上的每一步,挣扎了很多,甚至还访问了 github repo查看文档中是否还有其他内容。
我的问题是当我尝试访问 localhost:5000/{the_tag_name} 时说喜欢 localhost:5000/python我总是收到 404 Not Found

The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.


这是我到目前为止所做的:
之前 使用 lektor-tags :
  • 我将博客文章的路线更改为 /posts而不是 /blog .
  • 将 slug 格式添加到 models/blog.ini[children]
     [children]
    model = blog-post
    order_by = pub_date, title
    slug_format = {{ (this.pub_date|dateformat('YYYY/M/') if this.pub_date) ~ this._id }}
  • 创建了 3 个帖子,一切正常。

  • 此时我想使用标签系统,所以我选择使用 lektor-tags ,我所做的是:
  • 安装
    lektor plugins add lektor-tags
  • 已创建 configs/tags.ini使用此配置:
    parent = /
    url_path = {{ this.parent.url_path }}{{ tag }}
    tags_field = tags
    ignore_missing = true
    template = tags.html
  • 已创建 templates/tags.html具有以下内容:
        {% extends "layout.html" %}
    {% block title %}{{ this.title }}{% endblock %}
    {% block body %}

    <div class="container mt-3">
    <b>Tag: {{ this.tag }}</b>
    <b>Items:</b>
    <ul>
    {% for i in this.items %}
    <li><a href="{{ i|url }}">{{ i._id }}</a></li>
    {% else %}
    <li><em>No items.</em></li>
    {% endfor %}
    </ul>
    </div>
    {% endblock %}
  • 已编辑 models/blog-post.ini并补充说:
       [fields.tags]
    type = strings
  • templates/blog-post.html我添加了以下内容以显示指向包含具有特定标签的所有帖子列表的页面的链接:
        {% if this.tags %}
    <ul>
    {% for t in this.tags -%}
    <li>
    <a href="{{ ('/' ~ t.lower())|url }}">
    All posts tagged {{ t }}
    </a>
    </li>
    {% endfor %}
    </ul>
    {% endif %}
  • 最后我更新了一个帖子以包含来自管理员的一些标签并确保它在 content.lr 中对于那个帖子。所以我停止了 lektor 开发服务器并再次运行它 lektor servor没有错误。

  • 标签的链接在帖子中,但是当我点击并点击链接时,例如 python 标签 localhost:5000/python我得到 404 Not Found .我是 lektor 的新手。我想知道我做错了什么,我怎样才能让它正常工作?

    注意:我使用的其他插件是 lektor-minify , lektor-disqus-comments这些插件的文档很简单,我没有感到困惑,但是当谈到这个特定的插件时,我感到困惑,挣扎:文档不是那么好解释,我感到完全迷失了!

    更新
    我创建了一个 github repo包含代码和我到目前为止所做的事情,因此您可以轻松地复制它。

    更新 2
    我设法让它正常工作,请参阅下面的答案,但是现在我想知道如何将根设置为父级,换句话说,如何编辑此表达式:
    <a href="{{ ('/posts@tag/' ~ t.lower())|url }}">
    为每个博客文章的标签生成一个源路径,但使用 root 作为父级。
    正如你所看到的,我试过这个:
    <a href="{{ ('/' ~ t.lower())|url }}">
    但这不能正常工作。
    值得一提的是,lektor 使用了 jinja2模板语言。

    最佳答案

    所以基本上是我做错了,因为我想在 tags.ini 中使用 root 作为父级像这样:

        parent = /
    我最终改变了表达 '/blog@tag/' ~ t.lower()blog-post.html类似于:
        <a href="{{ ('/' ~ t.lower())|url }}">
    使其无法为每个博客文章的标签生成源路径
    我改变和工作的是 :
  • 我选择了 posts成为父级,更新 configs/tags.ini到 :
    parent = /posts
    url_path = {{ this.parent.url_path }}{{ tag }}
    tags_field = tags
    ignore_missing = true
    template = tags.html
  • 更新 templates/blog-post.html :
    {% if this.tags %}
    <ul>
    {% for t in this.tags -%}
    <li>
    # '/posts@tag/' ~ t.lower() because i changed the route of blog to posts
    <a href="{{ ('/posts@tag/' ~ t.lower())|url }}">
    All posts tagged {{ t }}
    </a>
    </li>
    {% endfor %}
    </ul>
    {% endif %}

  • 运行后 lektor clean --yes然后 lekor server一切正常,包括标签系统。

    关于python - Lektor CMS : Can't get lektor-tags to work properly, 在服务器上找不到请求的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67861497/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com