2012-08-06 31 views
1

我们有很多包含在我们网站上的资源图像/静态文件引用的文件。当我们将这些文件移动到S3主机时,我正在编写一个脚本来读取我们的每个ASP文件,替换每个引用,以便每个引用指向一个全局定义的变量,并将这些更改重写为该文件,不得不手动更新所有这些文件!写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定界符<%=%> 围绕它的全球变化。

例如。

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

因为脚本分隔符实际上把车子停在他们的页面,并生成一个错误,那就是我发现很难。 URL编码<%= s3BucketName%>字符串,并写入,只是写入编码的文本(ASP不可用),并不转换成我想要的。

任何想法感激地接受。

谢谢,亚当

回答

2

好吧,我想出了一个解决方案,似乎工作。如果你找到更好的,请评论。

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

基本上,<%=和%>的每个符号都被转换为chr()值。

1

你可以用在你的页面的头部部分basetag然后你可以离开喜欢独自脚本示例中的相对URL,你可以用一个peedeeaay表明,这种技术结合起来。

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