由于下面的回答,我有一个“请求前”功能,如果用户尚未登录,它会将用户重定向到“登录”:
请求前烧瓶-添加特定路线的例外情况
这是我的before_请求的副本:
@app.before_request
def before_request():
if 'logged_in' not in session and request.endpoint != 'login':
return redirect(url_for('login'))
但是,除非用户登录,否则不会提供静态目录中的文件。
在我的/login
页面上,我正在从/静态
目录中获取一个css文件,但由于这个before_request
,它无法加载。
我已经使用apache部署了这个应用程序mod_wsgi在我的apache配置文件中,我甚至包含了/静态
目录作为站点的DocumentRoot。
如何添加异常以在用户不登录的情况下提供应用程序的/静态
文件,但仍将此before_request
用于烧瓶应用程序定义的路由?
我确实同意Apache方法,但为了快速修复,我在before_request()函数的开头使用了以下逻辑:
if flask.request.script_root == "/static":
return
我认为有一种解决方案比检查请求更干净。路径。
if 'logged_in' not in session and request.endpoint not in ('login', 'static'):
return redirect(url_for('login'))
您需要向Apache配置文件(或.htaccess文件,如果您没有访问.conf文件的权限)添加一个Alias或AliasMatch指令,以确保Apache为您的静态文件服务,而不是Flask。确保您提供了一个目录,以允许Apache web服务器访问您的静态路径。(另外,如果您正在编辑.conf文件,请不要忘记重新启动Apache,这样您所做的更改就会被提取出来)。
作为临时的权宜之计(或者为了便于在开发中使用),您还可以检查以确保字符串/静态/
不在request.path
中:
if 'logged_in' not in session \
and request.endpoint != 'login' \
and '/static/' not in request.path:
问题内容: 如果我将spring应用程序映射为处理所有传入请求(),则对静态内容的请求将返回404。例如,即使当Spring拦截请求时资源存在,对“ myhost.com/css/global.css”的请求也将返回404。 替代方法是将SpringMVC映射到子目录(例如’/ home / ‘),但是在这种情况下,必须在应用程序内的所有链接中传递此目录。有没有一种方法可以将SpringMVC映射
我是新手,请放心。目前,我正在使用放心的API自动化。我有以下方案要处理 我们有两个 API(例如:API1、API2),API1 会给出用户详细信息的列表。我需要将这些详细信息作为第二个 API 请求的一部分发送。 API1 -响应 API2 -请求:。:在API2请求中,我需要发送“sourceUserId”和“source”详细信息。 userSourceMeta详细信息会根据用户动态变化。
我尝试使用jQuery请求数据,它起作用了!所以很明显,它唯一的角度是造成一个问题! 编辑2-Headers AngularJS请求头: accept:application/json,text/plain,/accept-encoding:gzip,deflate,sdch accept-language:en-gb,en-美国;q=0.8,en;q=0.6 cache-control:no-c
我正试图排除一个目录被声纳分析。我在文件中定义了以下属性:
解决方案: 我为我的api请求准备了这段代码,当我使用调试器时,它可以工作。 我可以在PlayerStats课程中看到结果,但现在我遇到了一个问题。 但是在这个不工作: 统计数据。课程: 我需要一种从 不工作,因为零参数。 如果我试图修复: IDE说它需要一个或一个断言调用,但如果我尝试使用断言调用,应用程序就会崩溃,我会得到以下错误: 2020-03-05 18:58:02.803 23276-
我在使用API的post请求(使用chrome)时遇到了这2个错误 xhr.js:178后MY_API_URL::ERR_HTTP2_PROTOCOL_ERRORcreateError.js:16未捕获(promise)错误:网络错误在createError(createError.js:16)在XMLHttpRequest.handle错误(xhr.js:83) 我正在做一个简单的POST请求(