私は数日前に奇妙な状況を見つけましたが、多くの怒りを失った後に解決できました。
問題は、動的に作成されたpdf(cfdocumentを使用)内に画像を配置していることです。ウェブサイトをローカルで実行すると、画像が表示されます。しかし、コードを製品にアップロードすると、画像のプレースホルダーに壊れた画像が表示されます。
私は数日前に奇妙な状況を見つけましたが、多くの怒りを失った後に解決できました。
問題は、動的に作成されたpdf(cfdocumentを使用)内に画像を配置していることです。ウェブサイトをローカルで実行すると、画像が表示されます。しかし、コードを製品にアップロードすると、画像のプレースホルダーに壊れた画像が表示されます。
Al everett の提案を受け入れて、問題の解決策を説明します。画像が表示されない問題は、ドキュメントの HTTPS アクセスが原因であり、画像がダウンロードされていませんでした。だから私は以下の回避策を使用しました:
<cfdocument format="pdf">
<cfoutput>
Some html content
<br>
<img src=#localUrl("img1.gif")#><br>
<img src=#localUrl("images/img.jpg")#>
</cfoutput>
</cfdocument>
<cffunction name="localUrl" >
<cfargument name="file" />
<cfset var fpath = ExpandPath(file)>
<cfset var f="">
<cfset f = createObject("java", "java.io.File")>
<cfset f.init(fpath)>
<cfreturn f.toUrl().toString()>
</cffunction>
これは通常、内部パスと外部パスが原因で発生します。内部的に有効でない可能性がある URL でドメインを参照している可能性があります。1 つの解決策は、サーバーのホスト ファイルを更新して、すべての有効なドメインとそれに相当する内部ネットワーク IP を含めることです。次に、サーバーでドメインが要求されると、無効な外部 IP ではなく内部 IP が参照されます。