[英]Flask and OpenLayers
我有一个通过Flask部署的Web应用程序。 我正在使用OpenLayers映射,该映射请求文件夹scriptdir / theme / default中的样式表。 我对我的解决方案不太满意,所以希望有人能给我一个提示以使其做得更好:
@app.route('/theme/default/style.css')
def get_openlayers_css():
return url_for('static', filename='jslib/theme/default/style.css')
javascript控制台向我显示此警告:
Resource interpreted as Stylesheet but transferred with MIME type text/html: http://localhost:5000/theme/default/style.css
OpenLayers.Map.OpenLayers.Class.initialize OpenLayers.js:424
...
所需的样式表位于/static/jslib/theme/default/style.css中,而OpenLayers.js文件位于/ static / jslib中。 我曾考虑过流式处理css文件,但是我是flask的新手,因此无法正常工作。
提前致谢!
问候
您最好使用theme: null
[1]选项配置地图,这将禁用css的自动加载,并自行在页面中加载。
1- http://dev.openlayers.org/docs/files/OpenLayers/Map-js.html#OpenLayers.Map.theme
OpenLayers有一种奇怪的方式来为其资源找到基本URL(请参阅源代码 )。 如果您使用的是“解压缩”版本(而非单个文件),则OpenLayers.js
必须位于名为lib
的文件夹中,否则URL自动检测将失败。
另外,您的get_openlayers_css
函数将返回一个包含URL的文本响应。 您可能想编写重定向:
@app.route('/theme/default/style.css')
def get_openlayers_css():
return redirect(url_for('static', filename='jslib/theme/default/style.css'))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.