Как исправить ошибку CSS 404 при использовании переменных в маршруте Flask - PullRequest
0 голосов
/ 22 мая 2019

Я пишу простое веб-приложение для отображения рецензий на книги.Успешный поиск возвращает ссылки на названия книг - когда пользователь нажимает на ссылку, я пытаюсь передать ISBN книги, на которую был выполнен щелчок, в метод url_for, а затем отображать соответствующий шаблон.

Выводс моего сервера Flask отображается следующее, а CSS не отображается.

"GET / book_data / 0316769177 HTTP / 1.1" 200 -
"GET /book_data/static/style/style.css HTTP / 1.1" 404

search_results.html:

{% for book, isbn in book_dict.items() %}
    <li>
        <a id="book_link" href="{{ url_for('book_data', isbn=isbn) }}">{{ book }}</a>
    </li>
{% endfor %}

application.py:

@app.route("/book_data/<isbn>", methods=["GET"])
def book_data(isbn):

    valid_login = True

    results = db.execute('SELECT * FROM books WHERE isbn = :isbn',
                         {'isbn': isbn}).fetchall()

    book_info = results[0]

    return render_template("book_data.html",
                           valid_login=valid_login,
                           book_info=book_info)

book_data.html:

{% extends "layout.html" %}

{% block login %}

    <div>
        <a class="login_link" href="{{ url_for('signup') }}">Sign Up</a>
        {% if valid_login == True %}
            <a class="login_link" href="{{ url_for('logout') }}">Logout</a>
        {% endif %}
    </div>

{% endblock %}

{% block body %}

    <h> CSS not working on this page</h>

{% endblock %}

Все ожидаемые CSS взяты из layout.html.

Все мои html-страницы расширяют layout.html (и CSS работает, как и ожидалось, для всех других моих страниц, кроме этой.

Когда я нажимаю ссылку из search_results.html, следующий URLотображается (как и ожидалось): 127.0.0.1:5000/book_data/0316769177

1 Ответ

1 голос
/ 22 мая 2019

Сервер получает файл style.css из /book_data/static/style/style.css вместо /static/style/style.css.

Чтобы решить эту проблему, в layout.html попробуйте заменить:

<link rel="stylesheet" href="static/style/style.css">

К

<link rel="stylesheet" href="/static/style/style.css">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...