1

JSON オブジェクトのメンバーごとに動的に生成されたサムネイルのグリッドを作成しようとしています。

各メンバーには「タイトル」キーと値があり、Web ページが読み込まれると、各メンバーのタイトルに基づく URI が生成されます。この URI は、backbone.js オブジェクトの「img」プロパティになり、テンプレートでレンダリングに使用されます。(下部のコードを参照してください)。

私の問題は、これらのタイトルの一部にアクセント記号があり、Web サイトが読み込まれると、サムネイル パスのアクセント記号が「x%CC%81」になることです。ここで、「x」はアクセント付きの母音です。これは私のWebサーバー(Apache 2.2.6)でのみ発生します-MAMP(Apache 2.2.26だと思います)を使用してサイトをローカルでテストすると、うまく機能します。

文字列パスを作成するときに decodeURI() を使用しようとしましたが、役に立ちませんでした。したがって、サーバーのいずれかと関係があると思います(MAMPでは機能しますが、私のWebサーバーでは機能しないため)が、理由はわかりません。私にとって、より可能性の高い原因は、CSS がアクセント記号を解析できないことです。

各項目の URI を生成する backbone.js コードのスニペットを次に示します。

//For each model in the collection, generate the image uri, 
//where item.getHyphTitle() is the title that may contain accent marks

_.each(this.collection.models, function(item){
        item.set("img", decodeURI('../images/thumbs/' + item.getHyphTitle() + '-thumb.jpg'));
        renderContact(item);
 },this);

使用されるテンプレートの一部は次のとおりです。

<div class="work-background" style="background-image:url('<%= img %>');"></div> 

ご不明な点がございましたら、お気軽にお問い合わせください。私を助けてくれてありがとう。

4

1 に答える 1

0

エンコード エラーが発生している可能性があります。あなたがやろうとしていることをサポートするオペレーティングシステム(OSXだと思います)もあれば、そうでないものもあります。この問題に関する詳細が多すぎるリンクを次に示します。

ファイル システム、Unicode、および正規化

于 2012-08-28T05:00:36.740 に答える