6

私は、collective.quickupload だけがインストールされた空白の Plone 4.1 サイトを持っています。plone.app.theming をインストールしてテーマを適用するまで、アップロード ポートレットは正常に機能していました。ファイルは引き続きアップロードされましたが、Web クライアントは「失敗」ステータスになりました。

サーバーからの ajax 応答を調べると、html ヘッダーでラップされていることがわかりました。古い応答 (diazo をインストールしてテーマを適用する前) は単純でした。

{"success":true}

新しい応答 (diazo をインストールしてテーマを適用した後) は、html タグでラップされていました。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><body><p>{"success":true}</p></body></html>

ここに自分の rule.xml ファイルを貼り付けました (特別なことはありません。css:if-content="#visual-portal-wrapper" によって条件付けられるルールは 1 つだけです): http://pastebin.com/SaK13Fni

これを回避するにはどうすればよいですか?

ありがとう

4

2 に答える 2

8

この動作を回避するには、次rules.xmlのように、テーマを特定のビューに適用しないように指定する例外を追加する必要があります。

<notheme if-path="myjson_view"/>

編集

diazo テーマの 1 つと json ビューを試してみましたが、問題はありませんでした。したがって、問題は rules.xml または json ビューにあると思います。次の 2 つの方法のいずれかを試す必要があります。

  1. このように変更してくださいrules.xml

       <rules
        xmlns="http://namespaces.plone.org/diazo"
        xmlns:css="http://namespaces.plone.org/diazo/css"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    
        <!-- Prevent theme usage in zmi-->
        <rules css:if-content="#visual-portal-wrapper">
            <theme href="index.html" />
        </rules>
    
  2. json ビューで出力の「Content-type」を既に指定していますか? このような:

    self.request.response.setHeader("Content-type","application/json")
    return json_data
    

    そうでない場合は、おそらくそれが問題です。

于 2011-09-22T09:07:27.833 に答える
0

Chrome インスペクターの使用に注意してください...検査すると、json の周りに html の head タグと pre タグが追加されます...ページの view:source (古い学校) を見ると、実際にはそこにありません...

于 2015-02-06T05:27:12.643 に答える