首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么徽标没有呈现在引导导航栏下拉项目链接页面?

为什么徽标没有呈现在引导导航栏下拉项目链接页面?
EN

Stack Overflow用户
提问于 2021-05-09 17:35:26
回答 1查看 186关注 0票数 0

我使用的是烧瓶框架。我的引导导航栏中没有几个选项卡(Home,About,Services和Contact)。

“服务”选项卡是一个下拉选项卡,它有一个名为profile的下拉项,并链接到Profile.html模板。

所有模板(html文件)都是从base.html继承的。

除了服务>>配置文件页面外,所有其他页面都按照base.html呈现徽标。Logo未在服务>>配置文件页面中呈现,如下所示:

徽标在其他页面中呈现

I希望徽标在服务>>配置文件页面中呈现,就像其他页面一样(主页、关于和联系人)。请帮我解决这个问题

项目结构:

base.html

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="english">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="shortcut icon" href="static/images/logo1.png">    
    <link
        href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/css/bootstrap.min.css"
        rel="stylesheet"
        integrity="sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6"
        crossorigin="anonymous"
    >
    <link rel="stylesheet" href={{url_for('static', filename='stylesheets/style.css')}}>    

    <title>{% block title %}{% endblock %}</title>
</head>

<body>

    <div class="container-fluid">
        <nav class=" navbar navbar-expand-lg navbar-light fixed-top bg-light py-lg-0 " id="customNavbar">  
            <a class="navbar-brand" href="/">
                <!-- Add logo -->
                <img src="static/images/logo1.png" alt="logo">
            </a>
            
            <button class="navbar-toggle-collapsed d-block d-sm-block d-md-none" type="button"
                    data-toggle="collapse" 
                    data-target="#navbarResponsive"
                    aria-controls="navbarResponsive" 
                    aria-expanded="true" 
                    aria-label="Toggle navigation"
                    id="togglerButton">
                    
                    <span class="line"></span> 
                    <span class="line"></span> 
                    <span class="line" style="margin-bottom: 0;"></span>
            </button>
    
            <div class="collapse navbar-collapse" id="navbarResponsive">
                <ul class="navbar-nav ml-auto">
                    <li class="nav-item active">
                        <a class="nav-link" href="/"><strong>Home</strong></a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link" href="/About"><strong>About</strong></a>                        
                    </li>

                    <li class="nav-item dropdown">
                        <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
                            <strong>Services</strong>
                        </a>
                        <ul class="dropdown-menu" aria-labelledby="navbarDropdown">
                            <li><a class="dropdown-item" href="/Services/Profile">Create profile</a></li>
                            <li><a class="dropdown-item" href="#">Service 2</a></li>
                            <li><hr class="dropdown-divider"></li>
                            <li><a class="dropdown-item" href="#">Something else here</a></li>
                        </ul>
                    </li>

                    <li class="nav-item">
                        <a class="nav-link" href="/Contact"><strong>Contact</strong></a>
                    </li>
                </ul>
            </div>        

            <form class="lg-flex">
                <button type="button" href="/signin"  class="btn btn-custom">Sign In</button>
                <button type="button" class="btn btn-custom">Sign Up</button>
            </form>
        </nav>    
    </div>

    <h1>Welcome</h1>
    {% block content%}
    {% endblock%}
    
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.0/jquery.min.js" integrity="sha256-xNzN2a4ltkB44Mc/Jz3pT4iU1cmeR0FkXs4pru/JxaQ=" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-p34f1UUtsS3wqzfto5wAAmdvj+osOnFyQFpp4Ua3gs/ZVWx6oOypYoCJhGGScy+8" crossorigin="anonymous"></script>
</body>

</html>

Profile.html

代码语言:javascript
复制
{% extends 'base.html'%}

{% block title %}Profile{% endblock %}

{% block content%}
    <h1> Profile Page! </h1>
{% endblock%}

routes.py

代码语言:javascript
复制
from flask import render_template, Blueprint
routes = Blueprint('routes', __name__)

@routes.route('/')
def home():
    return render_template('Home.html')

@routes.route('/About')
def about():
    return render_template('About.html')

@routes.route('/Services/Profile')
def profile():
    return render_template('Profile.html')

@routes.route('/Contact')
def contact():
    return render_template('Contact.html')

init.py ( init之前和之后双下划线在此处不可见)

代码语言:javascript
复制
from flask import Flask
from .routes import routes

def create_app():
    app = Flask(__name__)
    app.register_blueprint(routes, url_prefix='/')      
    return app

main.py

代码语言:javascript
复制
from Website import create_app

app = create_app()

if __name__ == '__main__':
    app.run(debug=True)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-09 19:48:25

您有到图像源的直接链接,因此配置文件页试图在/Services/static/images/中查找logo1.png,而不是只查找static/images/,因为路由是/Services/Profile

您可以使用url_for获取徽标图像,而不管页面相对于静态文件夹的位置如何,就像样式表一样。看起来是这样的:

代码语言:javascript
复制
<img src="{{ url_for('static', filename='/images/logo1.png') }}" alt="logo">
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67460648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档