我们有很多文件包含对我们网站资源的图像/静态文件引用。当我们将这些文件移动到S3托管时,我正在编写一个脚本来读取每个ASP文件,替换每个引用,以便每个引用都指向一个全局定义的变量,并将这些更改重写到文件中,这样我们就不会必须手动更新所有这些文件!
这适用于实际代码中的引用。
例如。
Response.Write "<img src=""http://www.site.com/images/image.gif"">"
变为
Response.Write "<img src=""" & s3BucketName & "/images/image.gif"">"
但是当谈到替换这样的代码时:
<script src="/javascript/script.js">
这更难 - 因为我们必须放置ASP分隔符&lt;%=%&gt; 围绕它的全球变量。
例如
<script src="<%=s3BucketName%>/javascript/script.js">
因为脚本分隔符实际上停止了它们所在的页面并产生错误,所以我发现这很困难。 URL编码&lt;%= s3BucketName%&gt;字符串和写入,只是写入编码的文本(ASP不可用),不会转换成我想要的。
感激地收到任何想法。
谢谢,亚当
答案 0 :(得分:2)
好的,我想出了一个解决方案,似乎有效。如果您找到更好的,请发表评论。
textToReplace = "src="""& chr(60) & chr(37) & chr(61) & "s3BucketName" & chr(37) & chr(62) & "/javascript/script.js"
基本上每个符号都是&lt;%=和%&gt;转换为chr()值。
答案 1 :(得分:1)
您可以在页面的head部分使用basetag,然后您可以单独保留脚本示例中的相对URL,您可以将此技术与peedeeaay建议的那个结合起来。
<base href="http://www.s3bucketdomain.com/directory/" />