2012-08-06 45 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/" />