Apache 2.4 代理 Css 和 Js 路径

Apache 2.4 代理 Css 和 Js 路径

我得到了 Apache Web Server 2.4 和一个公开 Web 项目的 JBoss 7。

由于我在本地工作,因此我创建了一个/etc/hosts/如下的域名条目:

127.0.0.1    testmask

并将此虚拟主机配置放入我的 Apache 中:

<VirtualHost *:80>   
    ServerName testmask/
    ServerAlias  testmask
    RewriteEngine  on 
    RewriteRule   ^/$  http://testmask/MyWebapp/  [R] 
    ProxyPass / http://testmask:8080/
    ProxyPassReverse / http://testmask:8080/
</VirtualHost> 

这很有效。如果我在浏览器中输入:

testmask/

它重定向到:

http://testmask/MyWebapp/

到目前为止还不错。

现在因为我想得到相同的结果但只留下:

http://testmask/

我已经对重写规则进行了代理:

RewriteRule   ^/$  http://testmask/MyWebapp/  [P] 

但是在与上下文根相关的 css 和 js 上我遇到了 404 未找到问题。

这是因为我的浏览器正在尝试从以下位置获取 css 和 js:

http://testmask/static/
|-  css/*
|-  js/*
|-  medias/*

当他们处于:

http://testmask/MyWebapp/static/
|-  css/*
|-  js/*
|-  medias/*

(build\ReactJS create-react-app 的典型文件夹结构)。

尝试了通过 RewriteRules 或 Proxypass 不同的方法,但都没有用,这可能是因为我在 Apache 上的经验很差。

考虑到我并不想触碰,index.html因为我的项目也需要独立存在,因为我是通过来开发它的npm

答案1

我会尝试使用 mod_proxy。

首先启用:

a2enmod mod_proxy
a2enmod mod_proxy_http

然后在你的 apache 配置中它将看起来像这样:

ProxyPass / http://localhost/MyWebapp
ProxyPassReverse / http://localhost/MyWebapp

所以现在如果你连接到http://本地主机/(或者你的情况http://测试掩码/)它应该是MyWebapp的代理。

相关内容