Asp classic 编写包含ASP分隔符的文件

Asp classic 编写包含ASP分隔符的文件,asp-classic,vbscript,Asp Classic,Vbscript,我们有很多文件,其中包含对网站资源的图像/静态文件引用。当我们将这些文件移动到S3托管时,我正在编写一个脚本,读取每个ASP文件,替换每个引用,使每个引用指向一个全局定义的变量,并重写对文件的更改,这样我们就不必手动更新所有这些文件了 对于实际代码中的引用,这可以正常工作 例如 Response.Write“” 变成 Response.Write "<img src=""" & s3BucketName & "/images/image.gif"">" Respo

我们有很多文件,其中包含对网站资源的图像/静态文件引用。当我们将这些文件移动到S3托管时,我正在编写一个脚本,读取每个ASP文件,替换每个引用,使每个引用指向一个全局定义的变量,并重写对文件的更改,这样我们就不必手动更新所有这些文件了

对于实际代码中的引用,这可以正常工作

例如

Response.Write“”
变成

Response.Write "<img src=""" & s3BucketName & "/images/image.gif"">"
Response.Write“”
但当涉及到这样的代码替换时:

<script src="/javascript/script.js">

这更难,因为我们必须放置ASP分隔符 围绕着它的全球var

例如


因为脚本分隔符实际上会将页面停止在它们所在的位置,并生成一个错误,所以我发现这很困难。URL对字符串进行编码,然后写入,只是写入编码的文本(ASP无法使用),不会转换为我想要的内容

任何想法都受到了感激


谢谢,亚当。好的,我想出了一个解决办法,似乎很有效。如果你找到更好的,请评论

textToReplace = "src="""& chr(60) & chr(37) & chr(61) & "s3BucketName" & chr(37) & chr(62) & "/javascript/script.js"

基本上,的每个符号都转换为chr()值

您可以在页面的页眉部分使用basetag,然后您可以像脚本示例一样保留相对URL,您可以将此技术与Peedeaay建议的技术结合起来

<base href="http://www.s3bucketdomain.com/directory/" />

textToReplace = "src="""& chr(60) & chr(37) & chr(61) & "s3BucketName" & chr(37) & chr(62) & "/javascript/script.js"
<base href="http://www.s3bucketdomain.com/directory/" />