1

サイト上のリソースへの画像/静的ファイル参照を含むファイルがたくさんあります。これらのファイルを 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">

スクリプト区切り文字は実際にページを停止し、エラーを生成するため、それが難しいと感じています。<%=s3BucketName%> 文字列を URL エンコードし、書き込み、エンコードされたテキスト (ASP では使用できない) を書き込むだけで、必要なものに変換されません。

どんなアイデアもありがたく受け取った。

ありがとう、アダム

4

2 に答える 2

2

わかりました、私は解決策を思いつきました、うまくいくようです。より良いものを見つけたら、コメントしてください。

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

基本的に <%= と %> の各記号は chr() 値に変換されます。

于 2012-08-06T20:41:19.140 に答える
1

ページのヘッド セクションで basetag を使用してから、スクリプトの例のように相対 URL をそのままにしておくことができます。この手法を peedeeaay が提案する手法と組み合わせることができます。

<base href="http://www.s3bucketdomain.com/directory/" />
于 2012-08-08T11:14:12.423 に答える