Apache 服务器 - 无法找到 CSS 和 JS 文件

Apache 服务器 - 无法找到 CSS 和 JS 文件

我希望当我点击 URL A 时,它应该提供来自 URL B 的内容,但地址栏上的 URL 应该只指向 URL A。

URL A: http://apps.company.com/lab
URL B: http://svrdev-73:6020

为了尝试这一点,hosts我在文件中进行了如下配置:

172.16.0.73         apps.company.com

我正在使用 Windows Server 2016。应用程序 B 和 Apache ( ver. 2.4) 都在同一 Windows 服务器上运行。我发现了这一点ProxyPassProxyPassReverse可能会有所帮助。

在文件末尾添加以下几行httpd.conf

ProxyRequests Off
ProxyPreserveHost On
AllowEncodedSlashes NoDecode

<Proxy http://svrdev-73:6020/*>
  Order deny,allow
  Allow from all
</Proxy>

ProxyPass         /lab  http://svrdev-73:6020 nocanon
ProxyPassReverse  /lab  http://svrdev-73:6020

配置(错误)后,当我尝试访问 URL A 时,虽然它会将我带到直接访问 URL B 时出现的登录页面,但当我登录时,它不会显示任何内容。在浏览器的控制台部分,我看到以下内容:

Failed to load resource: the server responded with a status of 404 (Not Found) main.00e8fde0.css:1
Failed to load resource: the server responded with a status of 404 (Not Found) main.aa149470.js:1

当我检查 Apache 日志时,我看到了以下内容:

[Sun Sep 23 12:35:54.949711 2018] [core:info] [pid 20708:tid 1072] [client 172.16.0.73:60914] AH00128: File does not exist: C:/apache24/htdocs/static/css/main.00e8fde0.css, referer: http://apps.company.com/lab
[Sun Sep 23 12:35:54.949711 2018] [authz_core:debug] [pid 20708:tid 1076] mod_authz_core.c(817): [client 172.16.0.73:60913] AH01626: authorization result of <RequireAny>: granted, referer: http://apps.company.com/lab

从上面我看到它正在默认DocumentRoot目录中寻找文件(即"${SRVROOT}/htdocs"),但是,我的应用程序代码(URL B)位于 Tomcatc:\app-tomcat\webapps\ROOT\目录中。我还尝试将 DocumentRoot 目录路径更改c:/app-tomcat/webapps/ROOT索引.html居住在一起静止的dir 和其他文件,但我仍然收到相同的错误。我还将此属性更改<Directory "${SRVROOT}/htdocs">为,<Directory "c:/app-tomcat/webapps/ROOT">但错误仍然存​​在。httpd.conf除了更改日志级别和启用mod_proxymod_proxy_http模块外,没有对 或 Apache 中的任何其他文件进行任何其他修改。

知道如何解决这个问题吗?

答案1

看来你只重定向/lab,但静态文件不在/lab,它们在/static

因此您也应该重定向,/static以便可以访问这些文件。

另一种方法是将静态文件放入适当的 Apache 目录中。

编辑

关于文件未找到的错误消息说

C:/apache24/htdocs/static/css/main.00e8fde0.css

假设DocumentRootC:/apache24/htdocs,则意味着访问该文件的 URL 是/static/css/main.00e8fde0.css

相关内容