5

Ubuntu12.04ボックスにapache2とColdFusion9をインストールしました。私はすでにApacheでCheckSpellingmodを使用して、大文字と小文字を区別するURLやApacheが担当するその他のパスを無効にしています。

さて、私は約4GBのレガシーコード(約6年分)を使用しており、慣例に準拠しているものはほとんどないことを覚えておいてください。私の前のコーダーは、アプリケーションがWindowsボックスでどのようにホストされているかを見て、大文字と小文字の区別を気にしませんでした。ほとんどの場合、ColdFusionはとで動作しますが、(コードベースで非常に頻繁に使用される)大文字<cfinclude>と小文字が区別さCreateObjectれるようです。<cfinvoke>

今、私はコードをvfatパーティションに移動する方法を試しましたが、私が遭遇したのは、ファイル名に関するたくさんのエンコーディングの問題でした(私たちは外国企業と取引し、多くの特殊文字を取得します)。ほとんどのファイルはMySQLデータベースでも参照されているため、ファイルの削除や名前の変更は面倒であり、そこでも変更する必要があります。したがって、再コーディングはやや悪夢です。

したがって、Linuxで実行するときにColdFusionに大文字と小文字を区別しない特別なフラグがあるのか​​、それともこれをすべてまとめる別の方法があるのか​​、興味があります。

編集

すみません、間違えました。cfinvokeうまくいくようです。窒息しているcfobject

4

1 に答える 1

10

私はいくつかの調査をしました、そしてこれは私が思いついたものです...

カスタムタグの作成(help.adobe.com)

注:ColdFusionページのタグ名では大文字と小文字は区別されませんが、UNIXではカスタムタグのファイル名を小文字にする必要があります。

cfinvokeドキュメント(help.adobe.com)

UNIXシステムでは、ColdFusionは最初に、指定されたコンポーネント名と一致する名前のファイルを検索しますが、すべて小文字です。ファイルが見つからない場合は、コンポーネント名と完全に一致し、大文字と小文字が同じファイル名を探します。

は標準タグであるため<cfinvoke>、タグ自体は大文字と小文字を区別しません。ただし、大文字と小文字が不規則な呼び出しを一貫して成功させるには、すべてのコンポーネント引数<cfinvoke>に小文字のファイル名が必要であるように思われます。リファクタリングは難しいとおっしゃっていましたが、これが私が思いついたものです。

コンポーネントを具体的に保持するフォルダがある場合は、そのフォルダでシェルスクリプトを実行して、すべての名前を小文字に変更するのは簡単です(毎回確認するかどうかを尋ねられたくない場合は、-iを削除してください)。 )::

for filename in *.cfc; do
  lowercase =`echo $filename | tr '[:upper:]' '[:lower:]'`
  mv -i $filename $lowercase
done

すべてのコンポーネントが同じフォルダにない場合は、トップディレクトリから試してください。

これを試してみてください!

于 2012-05-09T19:38:25.087 に答える