2016-11-23 3 views
0

Папки являются: Проект404 ошибка при визуализации шаблона с изображением

статическая папка - index.html

папки шаблонов - newyork.html + папки изображений - newyork.jpg

webapp.py

Когда я запускаю свой код через командующего, все работает иначе, чем изображения. По какой-то причине изображения не отображаются, и в подсказке Cmder появляется ошибка 404. Вот мой шаблон я использую:

<!doctype html> 
<title>New York</title> 
<h1>New York</h1>  
<p> 
New York is a state in the northeastern United States, and is the 27th-most extensive, fourth-most populous, and seventh-most densely populated U.S. state. New York is bordered by New Jersey and Pennsylvania to the south and Connecticut, Massachusetts, and Vermont to the east. The state has a maritime border in the Atlantic Ocean with Rhode Island, east of Long Island, as well as an international border with the Canadian provinces of Quebec to the north and Ontario to the west and north. 
</p> 
<img src="images/newyork1.jpg" alt="New York" style="width:750px;height:350px;"> 
<p> 
The state of New York, with an estimated 19.8 million residents in 2015, is often referred to as New York State to distinguish it from New York City, the state's most populous city and its economic hub. 
</p> 

Вот мой index.html Я использую:

<!DOCTYPE html> 
<html> 
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
<script> 
$(document).ready(function(){ 
    $("#newyorkbutton").click(function(){ 
    $.get("/newyork", function(data, status){ 
     $("#city").html(data); 
    }); 
    }); 
}); 
</script> 
</head> 
<body> 
<h2>Welcome to My Travels</h2> 
<input type="submit" name="NewYork" id="newyorkbutton" value="New York"> 
<h2>Welcome to My Travels</h2> 
<div id = "city"> 
<p> 
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum 
</p> 

</div> 
</body> 
</html> 

И наконец мой питон код я бегу:

from flask import Flask, render_template, request 

app = Flask(__name__) 


@app.route("/") 
def root(): 
    return app.send_static_file('index.html') 

@app.route("/newyork") 
def newyork(): 
    return render_template('newyork.html') 

if __name__ == "__main__":  
    app.run() 
+0

Так где же код для обслуживания изображений? –

ответ

0

Есть несколько вариантов решения этой проблемы в Flask.

вариант

Простейшее: вы можете переместить папку images в свой static каталог и изменить атрибут вашего, от images/newyork1.jpg тега url_for('static', filename='images/newyork1.jpg)src.

Или вы можете определить маршрут для своего каталога images в вашем файле webapp.py с помощью <path:path>, добавленного как уловка. Затем определите функцию с параметром path, которая возвращает вызов send_from_directory с аргументами images и path. Убедитесь, что вы импортировали send_from_directory из Flask в верхней части файла.

@app.route('/images/<path:path>') 
def images(path): 
    return send_from_directory('images', path) 
+0

Получил это благодаря работе – Dylan