8

非常に古いアプリ (現在 CF8 で実行中) を Lucee に移行しています。しかし、ある種のカスタム タグのように見える問題が発生しています。

古いインストールと新しいインストールの両方で、すべての仮想ディレクトリが IIS で同じであることを確認しようとしました。また、CFIDE と Lucee Admin の両方でマッピングとカスタム タグのパスが同じであることを確認してください。

しかし、私はこのエラーが発生しています。そして、これがどのようcflinkにインスタンス化されているのかわかりません。

ここに画像の説明を入力

ここに画像の説明を入力

utils.cfc ファイルの 300 行目にエラー コードの場所が見つかりました。 ここに画像の説明を入力

<cf_link pageid="#LinkPageID#" Init="start">私は長い間カスタム タグを使用していませんでしたが、それらは一般的にアンダースコアで呼び出され、これがカスタム タグとして呼び出されている場合、コードはもっと好きになるはずだと思っていました。

このアプリを実行している現在の CF サーバーに移動すると ここに画像の説明を入力 、「tags」のマッピングがないように見えても、「tags」というディレクトリにある cflink.cfm というファイルからcfclass ファイルが作成されていることがわかります。ディレクトリもアドミニストレータの「カスタムタグパス」の下にもリストされていません。

このアプリは 2003 年に開始されましたが、ご想像のとおり、スパゲッティ コードのミスマッチに発展し、最初からこのタグがどのようにインスタンス化されているかを尋ねる人は誰もいません。

レガシーコードの経験がある人は、これを機能させるために私が見るべき他のアイデアを持っていますか? 現在は本番環境しかありませんが、Lucee で動作させることができれば、ここ 10 年間存在しなかった開発環境になるだけでなく、Lucee を紹介し続けることができる素晴らしい方法になります。優れた CFML エンジン

追加情報の追加

Leigh は init が jar 参照ではないかと尋ねましたが、cflink.cfm ファイルには次のコードが表示されます。

    <cfif Attributes.Init IS "start">
        <cfset Request.PageID = Attributes.PageID>
        <cfset Request.Page_Width = Variables.qParentInfo.Page_Width>
        <cfset Request.Page_Height = Variables.qParentInfo.Page_Height>
        <cfset Request.Page_TypeID = Variables.qParentInfo.Page_TypeID>
        <cfset Request.AddPath = "">
        <cfif IsDefined("Attributes.Anchor")>
            <cfset Request.Anchor = Attributes.Anchor>
        <cfelse>
            <cfset Request.Anchor = "">
        </cfif>
        <cfset Request.IsInternalLink = false>
        <cfexit method="EXITTAG">
    </cfif>

tags\cflink.cfm 内のコードにも cflink への参照があります。

<cfif Len(Variables.qParentInfo.ParentID) GT 0>
    <!--- Add the page title to the end of the path --->
    <cfset Request.AddPath =  ReplaceNoCase(Variables.qParentInfo.Nav_Title," ","_","ALL") & "/" & Request.AddPath>
    <cflink init="working" pageid="#Variables.qParentInfo.ParentID#" popcode="#Attributes.popcode#">
<cfelse> ......</cfif>

これは2004年に書かれたことを考えると再帰かもしれませんが、私はそれを疑っています

検索のスクリーン ショットの追加

ここに画像の説明を入力 ここに画像の説明を入力

4

1 に答える 1

4

他の誰かがこれに遭遇した場合。CF8 では、以前のバージョンを前提として、cfm ファイルをColdFusion8\wwwroot\WEB-INF\cftagsディレクトリに配置できます。この場合、そのファイルはColdFusion8\wwwroot\WEB-INF\cftags\link.cfm他の cftag として機能します。

2004 年にこのアプリを最初に作成した人を見つけることができました。彼は、カスタム タグとして作成した場合に入力するであろうアンダースコアの入力を避けるために、この方法で作成したと語っています。

このタグはアプリのいたるところで文字通り何百回も使用されているので、私はそれを理解しています. 見つけるために雌犬とビットボーイ。

あとは、同じように Lucee ワールドに移動する方法を考え出すだけです。したがって、同じ方法でインスタンス化されます。

@Leigh に感謝します。あなたはいつも素晴らしいです。

さらに情報を追加する

WEB-INF\lucee\library\tag対応する Lucee ディレクトリにファイルがある場合はWEB-INF\lucee\library\tag. これらのファイルはロード時に読み取られ、他の cf タグとして使用できます。

たとえば、ファイルWEB-INF\lucee\library\tag\link.cfmがある場合は、`cflink' で呼び出すことができます。

クールなアイデアのように見えるが、10年後に誰かが見つけるのはちょっとしたことだ

于 2015-12-11T20:44:42.283 に答える