我正在处理一个现有的应用程序,它本质上是一个瘦HTML页面内的非常大的.js文件。该脚本通过相对URI引用assets/
目录中的大量文件。
我想在多个测试服务器上运行该应用程序,而无需A)将数千个资产文件复制到每个测试服务器,或者B)重写JS中的每个资产引用以使用绝对URL。
我提出的解决方案是仅将.js和.html文件复制到测试服务器,并使用HTML <BASE>
标记将资产重定向到生产服务器。
<!DOCTYPE HTML>
<HTML><HEAD><TITLE>MyApp</TITLE>
<BASE href="https://www.example.com/production-app.html" />
</HEAD>
<BODY>
<SCRIPT src="./app.js"></SCRIPT>
</BODY></HTML>
我现在唯一的问题是<BASE>
还重定向<SCRIPT>
标记以加载app.js
的生产副本,而不是我的测试副本。 有没有办法从<BASE>
中排除这一个引用并强制它查找与html文件相同的目录?
我通过在脚本标记中使用测试服务器的绝对URL找到了一种解决方法,但这需要在每个测试服务器上单独复制HTML,并且看起来很笨拙。
答案 0 :(得分:2)
您无法排除链接,因为这是base
标记的预期行为,您实际上需要指定一个完整的绝对网址来覆盖基础href。