我在应用程序中为我的终端填充URL路由时遇到了一个问题,无法记录。
在Apache wsgi别名下使用应用程序时会出现问题,例如
本地主机/ mywebapp /
我的开发apache webapp.cong文件,
<virtualhost *:80>
ServerName mywebsite.com
WSGIDaemonProcess webapp user=www-data group=www-data threads=5 home=/home/user/projects/webapp/
WSGIScriptAlias /mywebapp /home/user/projects/webapp/app.wsgi
<directory /home/user/projects/webapp/>
WSGIProcessGroup pgadmin
WSGIApplicationGroup %{GLOBAL}
WSGIScriptReloading On
Require all granted
</directory>
</virtualhost>
当我尝试使用以下代码获取网址列表时,
for rule in current_app.url_map.iter_rules('static'):
print("Endpoint: ", rule.endpoint, "URL: ", rule.rule)
输出(其中一个端点&amp; url):
Endpoint: 'static' URL: '/static/<path:filename>'
我期待带有WSGI别名的网址,但我没有使用WSGI别名获取网址。
预期输出:
Endpoint: 'static' URL: '/mywebapp/static/<path:filename>'
另一件有趣的事情是,当我尝试使用url_for()函数获取网址时,我正在获取正确的网址
print(url_for('static', filename='js/require.js'))
输出
/mywebapp/static/js/require.js
如何使用 current_app.url_map.iter_rules()功能获取WSGI前置URL。