静态页面出错404(Flask Framework)

时间:2017-06-03 02:34:12

标签: python flask pythonanywhere

我经历了很多教程,一切顺利。但我开始自己的网站,我只得到404错误。

我下载了一个HTML模板并设法将文件从Github克隆到PythonAnywhere。现在我的文件结构是: Screenshot

Flask_app.py代码:

from flask import Flask

# set the project root directory as the static folder, you can set others.
app = Flask(flask_app, static_url_path='/home/dubspher/mysite')

app = Flask(__name__)
@app.route('/home/dubspher/mysite/')
def static_file(path):
    return app.send_static_file(index.html)

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

我是否应该使用模板创建另一个网站并使用render_template,或者我可以通过这种方式请求带有烧瓶的静态页面?

到目前为止,我尝试了很多代码,但我不知道如何处理static_url_path

HTML(如果需要):https://www.pythonanywhere.com/user/dubspher/shares/db715c9b9d7c43b7beb4245af23fb56c/

如果我需要添加更多信息,请告诉我。

1 个答案:

答案 0 :(得分:0)

以下代码已修复,以便在您网站的根目录中提供index.html(例如http://example.com/):

from flask import Flask

# set the project root directory as the static folder, you can set others.
app = Flask(__name__, static_folder='/home/dubspher/mysite/')

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

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

假设您的/ home / dubspher / mysite目录中有一个index.html文件。

要跟进你的css问题,你可以通过将static_url_path传递给Flask构造函数来获取静态文件。执行此操作时,与static_url_path磁带匹配的任何请求都将视为静态文件,并根据static_folder路径提供该请求。在下面的示例中,我将static_url_path设置为static,将static_folder设置为/ home / dubspher / mysite /。当http://example.com/static/css/site.css的请求进入flask时,将提供文件/home/dubspher/mysite/css/site.css。

from flask import Flask

app = Flask(__name__, static_url_path="/static", static_folder='/home/dubspher/mysite/')

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

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

以下是从index.html引用/home/dubspher/mysite/css/site.css中的样式表的示例。

<html>
<head>
<link rel="stylesheet" type="text/css" href="/static/css/site.css">
</head>
<body>
Hello There
</body>
</html>

如果您确实使用static_url_path,则需要非常小心,static_folder路径下的所有内容都是您想要访问的内容。 Flask将按原样提供服务。