我在安静的地方读到了一些服务静态文件应该留给服务器的地方,例如在这个SO question的几个答案中。但是我使用了OpenShift PaaS,不知道如何修改那里的.htaccess文件。
我遇到了这个piece of code,它从模板提供站点地图。我在我的网站地图和robots.txt应用程序上都这么做了,就像这样-
@app.route("/sitemap.xml")
def sitemap_xml():
response= make_response(render_template("sitemap.xml"))
response.headers['Content-Type'] = 'application/xml'
return response
@app.route("/robots.txt")
def robots_txt():
return render_template("robots.txt")
这有什么害处吗,或者我的方法可以吗?
最好的方法是将静态url路径设置为根url
将
robots.txt
和sitemap.xml
放入应用程序的static
目录并定义此视图:Flask内置了对静态文件的支持。
创建一个
/static
目录并将文件放在那里。然后,在实例化Flask
时,指定static_url_path
参数:默认设置是从
/static/
路径提供静态文件,但您希望从/
提供这些文件,因此它们在预期的位置。有关详细信息,请参见Flask API Docs。
除了开销和不必要的代码之外,您的方法的问题是,如果/当您要提供的某个文件包含类似于
render_template
的模板标记的内容时,您可能会导致呈现错误。如果要将文件读入内存(一次,不在方法内部),然后使用该字符串作为响应的主体,而不调用render_template
,那么至少可以避免该问题。相关问题 更多 >
编程相关推荐