繁体   English   中英

当烧瓶应用程序部署到Heroku时,为什么不导入flask-bootstrap base.html模板?

[英]Why won't the flask app import the flask-bootstrap base.html template when deployed to Heroku?

我可以在本地计算机上正常使用它,但是在将其部署到Heroku时,flask-bootstrap资产不会导入位于虚拟环境中的base.html文件。 而且我在日志或控制台中找不到任何错误。

我是否仍需要激活Heroku上的虚拟环境,还是应该已经解决了?

这是我尝试导入bootsrap的config.py文件:

from flask import Flask
from flask_bootstrap import Bootstrap
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
Bootstrap(app)
db = SQLAlchemy(app)

app.config['SQLALCHEMY_DATABASE_URI'] = 'URI-is-changed-on-this-question-for-privacy-reasons'

app.config['SECRET_KEY'] = 'secret-key-is-changed-on-this-website-for-privacy reasons' 

app.py导入文件并激活服务器

from config import app
from flask import Flask
from models import authentication, posts
from views import authentication, posts
from forms import authentication, posts

if __name__ == '__main__':
    app.run()

这是尝试扩展boostrap base.html的html文件。

{% extends "bootstrap/base.html" %}
{% import "bootstrap/wtf.html" as wtf %}

{% block jumbotron %}
    <div class="jumbotron">
        <h2>Hunter Krieger</h2>
        <h3>Blogger, Web Developer, Gamer and Bibliophile
    </div>
{% endblock jumbotron %}

{% block content %}
    {% if post %}
        {% for display in post %}
            <article class="well">
                <h1><a href="/{{ display.slug }}">{{ display.title }}</a></h1>
                <h4>Written by {{ display.author }}</h4>
                <h4>{{ display.created_at.strftime('%b %d, %Y') }}</h4>
                <div class="body">
                    {{ display.body | truncate(1250) | safe }}
                </div>
            </article>
        {% endfor %}
    {% else %}
        <p>There are no posts</p>
    {% endif %}
{% endblock %}

这是位于虚拟环境中路径“ ./venv/Lib/site-packages/flask_bootstrap/templates/bootstrap/base.html”上的base.html文件。

{% block doc -%}
<!DOCTYPE html>
<html{% block html_attribs %}{% endblock html_attribs %}>
{%- block html %}
  <head>
    {%- block head %}
    <title>{% block title %}Welcome to hckrieger.com!{% endblock title %}</title>

    {%- block metas %}
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    {%- endblock metas %}

    {% block favicon %}
    <link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}">
    {% endblock %}

    {%- block styles %}
    <!-- Bootstrap -->
    <link href="{{bootstrap_find_resource('css/bootstrap.css', cdn='bootstrap')}}" rel="stylesheet">
    <link href="{{ url_for('static', filename='css/stylesheet.css') }}" rel="stylesheet">
    {%- endblock styles %}

    {%- block fonts %}
    <link href="https://fonts.googleapis.com/css?family=Montserrat" rel="stylesheet"> 
    {%- endblock fonts %}

    {% block texteditor %}
        <script src="//cdn.ckeditor.com/4.7.1/full/ckeditor.js"></script>
    {%- endblock texteditor %}

    {%- endblock head %}
  </head>
  <body{% block body_attribs %}{% endblock body_attribs %}>
    {% block body -%}
    {% block navbar %}
    <nav class="navbar navbar-default">
      <div class="container-fluid">
        <!-- Brand and toggle get grouped for better mobile display -->
        <div class="navbar-header">
          <!--<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>-->
          <a class="navbar-brand" href="{{ url_for('index') }}">hckrieger.com</a>
        </div>

        <!-- Collect the nav links, forms, and other content for toggling 
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">      
          <ul class="nav navbar-nav navbar-right">
            <li><a href="{{ url_for('index') }}">Home</a></li>
            <li><a href="{{ url_for('about') }}">About</a></li>
            <li><a href="{{ url_for('contact') }}">Contact</a></li>
          </ul>
        </div>--><!-- /.navbar-collapse -->
      </div><!-- /.container-fluid -->
    </nav>
    {%- endblock navbar %}

    {% block jumbotron %}

    {% endblock jumbotron %}

    {% if admin %}
        <div class="container">
            <section class="content col-md-12">
                {% block admin_content -%}

                {%- endblock admin_content %}
            </section>  
        </div>
    {% else %}

        <div class="container">
            <section class="content col-md-9">
                {% block content -%}

                {%- endblock content %}
            </section>
            <section class="content col-md-3">
                {% include 'sidebar.html' %}
            </section>
        </div>

    {% endif %}

    {% block footer %} 
        <p class="center">hckrieger.com &copy; 2017</p>
    {% endblock %}

    {% block scripts %}
    <script src="{{bootstrap_find_resource('jquery.js', cdn='jquery')}}"></script>
    <script src="{{bootstrap_find_resource('js/bootstrap.js', cdn='bootstrap')}}"></script>
    {%- endblock scripts %}
    {%- endblock body %}
  </body>
{%- endblock html %}
</html>
{% endblock doc -%}

从看到该代码后,没有人知道我可以进行哪些更改以使flask-bootstrap在Heroku上工作吗?

在您的第一个代码段中, Bootstrap(app)应该是bootstrap = Bootstrap(app)

from flask import Flask
from flask_bootstrap import Bootstrap
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
bootstrap = Bootstrap(app)  # this line
db = SQLAlchemy(app)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM