我有一个可以做我需要的网络服务器,但为了开发应用程序,我希望我的一些静态文件可以在本地提供。 例如,我有/Desktop/project_folder/static/jsons/example.json。 我试试:
print(url_for('static', filename='jsons/example.json'))
/static/jsons/example.json
我得到的是/static/jsons/example.json。
我尝试通过以下方式设置static_path:
app = Flask(__name__, static_folder='/Desktop/project_folder/static')
print(app.static_folder)
/Desktop/project_folder/static
url = url_for('static', filename='jsons/example.json')
print(url)
/static/jsons/example.json
我在这里检查了几十个类似的问题,他们都建议调整static_folder或static_url_path,但这些都没有帮助 - 我只是开始在我的静态文件夹中的所有其他资源上获得404错误。我也试过send_from_directory,但我得到的是werkzeug.wrappers.Response对象,我无法从中获取数据。
更新: 我尝试加载这个json:
json_loaded = json.load(requests.get(url).text)
并收到错误消息:MissingSchema:无效的网址' /static/jsons/example.json':未提供架构。
答案 0 :(得分:1)
您需要告诉请求文件所在的位置。路径不够。您还需要包含方案和域,主机名或IP地址。只有端口是可选的。
requests.get('http://example.com/path/to/file')
由于您使用url_for
为您生成网址,因此您需要告诉它为您提供此信息。
url_for('static', filename='jsons/example.json', _external=True)