我的Express.js应用程序使用绝对路径(例如,/bootstrap/css/bootstrap.css
等)当我在Apache中反向代理时,在域根,它工作正常。但是,如果我在任何不同的路径上进行RP操作,应用程序的路径就无法解决。例如,如果我在/app
处设置RP,那么该应用将尝试获取/bootstrap/css/bootstrap.css
,而应该获取/app/bootstrap/css/bootstrap.css
等等。
作为解决此问题的尝试,我的Apache配置将X-Script-Name
标题设置为/app
:
Header add "X-Script-Name" /app
我希望然后将其注入到前端代码中,因为它由Express提供服务。例如,而不是:
<script src='/assets/something.js'></script>
......我们会有类似的东西:
<script src='${X-Script-Name}/assets/something.js'></script>
我遇到的问题是在Express中获得X-Script-Name
值。我原以为它会在路由器的req.headers
中,但这只是Express推送的标题......我怎样才能让它工作?
答案 0 :(得分:1)
使用普通Header
将设置响应标头。
您需要添加请求标头,以便下游应用可以访问它,因此您需要使用RequestHeader指令,如下所示:
RequestHeader set X-Script-Name "/app"