flask(pythonの場合)でプロジェクトを作成し、pycharmからプロジェクト(htmlファイルを含む)を実行すると、次のエラーが発生します。
エラーはhome.htmlの192行目です...
jinja2.exceptions.TemplateSyntaxError:予期されたトークン '、'、 'static'を取得しました
そして...これは問題を引き起こすhtmlファイルです:-(
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title>Stylish Portfolio - Start Bootstrap Template</title>
<!-- Bootstrap Core CSS -->
<link href="{{ url_for('static', filename='vendor/bootstrap/css/bootstrap.min.css') }}" rel="stylesheet">
<!-- Custom Fonts -->
<link href="{{ url_for('static', filename='vendor/font-awesome/css/font-awesome.min.css') }}" rel="stylesheet" type="text/css">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,700,300italic,400italic,700italic" rel="stylesheet" type="text/css">
<link href="{{ url_for('static', filename='vendor/simple-line-icons/css/simple-line-icons.css') }}" rel="stylesheet">
<!-- Custom CSS -->
<link href="{{ url_for('static', filename='css/stylish-portfolio.min.css') }}" rel="stylesheet">
</head>
<body id="page-top">
<!-- Navigation -->
<a class="menu-toggle rounded" href="#">
<i class="fa fa-bars"></i>
</a>
<nav id="sidebar-wrapper">
<ul class="sidebar-nav">
<li class="sidebar-brand">
<a class="js-scroll-trigger" href="#page-top">Start Bootstrap</a>
</li>
<li class="sidebar-nav-item">
<a class="js-scroll-trigger" href="#page-top">Home</a>
</li>
<li class="sidebar-nav-item">
<a class="js-scroll-trigger" href="#about">About</a>
</li>
<li class="sidebar-nav-item">
<a class="js-scroll-trigger" href="#services">Services</a>
</li>
<li class="sidebar-nav-item">
<a class="js-scroll-trigger" href="#portfolio">Portfolio</a>
</li>
<li class="sidebar-nav-item">
<a class="js-scroll-trigger" href="#contact">Contact</a>
</li>
</ul>
</nav>
<!-- Header -->
<header class="masthead d-flex">
<div class="container text-center my-auto">
<h1 class="mb-1">Timely</h1>
<h3 class="mb-5">
<em>A Free Time Management App</em>
</h3>
<a class="btn btn-primary btn-xl js-scroll-trigger" href="#about">Find Out More</a>
</div>
<div class="overlay"></div>
</header>
<!-- About -->
<section class="content-section bg-light" id="about">
<div class="container text-center">
<div class="row">
<div class="col-lg-10 mx-auto">
<h2>Stylish Portfolio is the perfect theme for your next project!</h2>
<p class="lead mb-5">This theme features a flexible, UX friendly sidebar menu and stock photos from our friends at
<a href="https://unsplash.com/">Unsplash</a>!</p>
<a class="btn btn-dark btn-xl js-scroll-trigger" href="#services">What We Offer</a>
</div>
</div>
</div>
</section>
<!-- Services -->
<section class="content-section bg-primary text-white text-center" id="services">
<div class="container">
<div class="content-section-heading">
<h3 class="text-secondary mb-0">Services</h3>
<h2 class="mb-5">What We Offer</h2>
</div>
<div class="row">
<div class="col-lg-3 col-md-6 mb-5 mb-lg-0">
<span class="service-icon rounded-circle mx-auto mb-3">
<i class="icon-screen-smartphone"></i>
</span>
<h4>
<strong>Responsive</strong>
</h4>
<p class="text-faded mb-0">Looks great on any screen size!</p>
</div>
<div class="col-lg-3 col-md-6 mb-5 mb-lg-0">
<span class="service-icon rounded-circle mx-auto mb-3">
<i class="icon-pencil"></i>
</span>
<h4>
<strong>Redesigned</strong>
</h4>
<p class="text-faded mb-0">Freshly redesigned for Bootstrap 4.</p>
</div>
<div class="col-lg-3 col-md-6 mb-5 mb-md-0">
<span class="service-icon rounded-circle mx-auto mb-3">
<i class="icon-like"></i>
</span>
<h4>
<strong>Favorited</strong>
</h4>
<p class="text-faded mb-0">Millions of users
<i class="fa fa-heart"></i>
Start Bootstrap!</p>
</div>
<div class="col-lg-3 col-md-6">
<span class="service-icon rounded-circle mx-auto mb-3">
<i class="icon-mustache"></i>
</span>
<h4>
<strong>Question</strong>
</h4>
<p class="text-faded mb-0">I mustache you a question...</p>
</div>
</div>
</div>
</section>
<!-- Callout -->
<section class="callout">
<div class="container text-center">
<h2 class="mx-auto mb-5">Welcome to
<em>your</em>
next website!</h2>
<a class="btn btn-primary btn-xl" href="https://startbootstrap.com/template-overviews/stylish-portfolio/">Download Now!</a>
</div>
</section>
<!-- Call to Action -->
<section class="content-section bg-primary text-white">
<div class="container text-center">
<h2 class="mb-4">The buttons below are impossible to resist...</h2>
<a href="#" class="btn btn-xl btn-light mr-4">Click Me!</a>
<a href="#" class="btn btn-xl btn-dark">Look at Me!</a>
</div>
</section>
<!-- Map -->
<section id="contact" c0lass="map">
<iframe width="100%" height="100%" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=Twitter,+Inc.,+Market+Street,+San+Francisco,+CA&aq=0&oq=Twitter&sll=28.659344,-81.187888&sspn=0.128789,0.264187&ie=UTF8&hq=Twitter,+Inc.,+Market+Street,+San+Francisco,+CA&t=m&z=15&iwloc=A&output=embed"></iframe>
<br/>
<small>
<a href="https://maps.google.com/maps?f=q&source=embed&hl=en&geocode=&q=Twitter,+Inc.,+Market+Street,+San+Francisco,+CA&aq=0&oq=Twitter&sll=28.659344,-81.187888&sspn=0.128789,0.264187&ie=UTF8&hq=Twitter,+Inc.,+Market+Street,+San+Francisco,+CA&t=m&z=15&iwloc=A"></a>
</small>
</section>
0
<!-- Footer -->
<footer class="footer text-center">
<div class="container">
<ul class="list-inline mb-5">
<li class="list-inline-item">
<a class="social-link rounded-circle text-white mr-3" href="#">
<i class="icon-social-facebook"></i>
</a>
</li>
<li class="list-inline-item">
<a class="social-link rounded-circle text-white mr-3" href="#">
<i class="icon-social-Twitter"></i>
</a>
</li>
<li class="list-inline-item">
<a class="social-link rounded-circle text-white" href="#">
<i class="icon-social-github"></i>
</a>
</li>
</ul>
<p class="text-muted small mb-0">Copyright © Taeer Mayzels</p>
</div>
</footer>
<!-- Scroll to Top Button-->
<a class="scroll-to-top rounded js-scroll-trigger" href="#page-top">
<i class="fa fa-angle-up"></i>
</a>
<!-- Bootstrap core JavaScript -->
<script src="{{ url_for('static', filename='vendor/jquery/jquery.min.js') }}"></script>
<script src="{{ url_for('static', filename='vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
<!-- Plugin JavaScript -->
<script src="{{ url_for('static', filename='vendor/jquery-easing/jquery.easing.min.js') }}"></script>
<!-- Custom scripts for this template -->
<script src="{{ url_for('static', filename='js/stylish-portfolio.min.js') }}"></script>
</body>
</html>
また、プロジェクト内のファイルは次のように並べられています。
私は問題が何であるか理解できなかったので、ここの天才の一人が私のエラーを明らかにしてくれることを願っています。
コードの終わり近くに、
<script src="{{ url_for('static', filename='vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
する必要があります
<script src="{{ url_for('static', filename='vendor/bootstrap/js/bootstrap.bundle.min.js')}}"></script>
'
、)
、}}
を逃しました
コールスタックを調べて、スタックがjinja2への呼び出しから、[〜#〜] html [〜#〜]ページの1つへの呼び出しに変化するタイミングを確認します。例えば:
File "C:\Program Files (x86)\Python37-32\lib\site-packages\jinja2\_compat.py", line 37, in reraise
raise value.with_traceback(tb)
File "c:\DEV\a-flask\base\templates\base.html", line 55, in template
<script src="{{url_for('static', filename='js/jquery-ui.min.js"></script>
File "C:\Program Files (x86)\Python37-32\lib\site-packages\jinja2\environment.py", line 1005, in render
return concat(self.root_render_func(self.new_context(vars)))
Base.htmlの55行目に行きました。
<script src="{{ url_for('static', filename='js/jquery-ui.min.js }}"></script>
修正は最後の引用と欠落した括弧を含めることでした:
<script src="{{ url_for('static', filename='js/jquery-ui.min.js') }}"></script>