【问题标题】:Write a file containing ASP delimiters编写包含 ASP 分隔符的文件
【发布时间】:2012-08-06 11:30:16
【问题描述】:

我们有很多文件包含对我们网站上资源的图像/静态文件引用。当我们将这些文件移动到 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 分隔符 围绕它周围的全局变量。

例如。

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

因为脚本分隔符实际上会停止它们所在的页面并生成错误,这就是我发现的困难。 URLencoding 字符串,然后写入,只是写入编码文本(ASP 无法使用),不会转换成我想要的。

感谢您的任何想法。

谢谢,亚当

【问题讨论】:

    标签: asp-classic vbscript


    【解决方案1】:

    好的,我想出了一个解决方案,似乎可行。如果您找到更好的,请发表评论。

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

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

    【讨论】:

      【解决方案2】:

      您可以在页面的 head 部分使用 basetag,然后您可以像脚本示例一样单独保留相对 url,您可以将此技术与 peedeeaay 建议的方法结合使用。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-01-19
        • 2018-11-20
        • 1970-01-01
        • 2015-11-01
        • 1970-01-01
        • 2022-06-15
        相关资源
        最近更新 更多