我有一个空白的Plone 4.1站点,只安装了collective.quickupload.上传portlet工作正常,直到我安装plone.app.theming并应用我的主题.文件仍然上传,但Web客户端状态为"失败".
检查来自服务器的ajax响应我发现它们被html标头包裹.旧的回应(安装重氮和应用我的主题之前)很简单
{"success":true}
Run Code Online (Sandbox Code Playgroud)
新的响应(在安装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>
Run Code Online (Sandbox Code Playgroud)
我在这里粘贴了我的rule.xml文件(没什么特别的,只有一条规则由css决定:if-content ="#visual-portal-wrapper"):http://pastebin.com/SaK13Fni
我该怎么做才能解决这个问题?
谢谢
要避免此行为,您必须在rules.xml指定的内容中添加一个例外,以便不将主题应用于特定视图,如下所示:
<notheme if-path="myjson_view"/>
Run Code Online (Sandbox Code Playgroud)
编辑:
我尝试过我的一个重氮主题和一个json视图,我没有你的问题.所以我认为问题出在rules.xml或json视图中.您应该尝试以下两种方式之一:
改变你的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>
Run Code Online (Sandbox Code Playgroud)你有没有在json视图中指定输出的"Content-type"?像这样:
self.request.response.setHeader("Content-type","application/json")
return json_data
Run Code Online (Sandbox Code Playgroud)
如果没有,那可能就是问题所在.
| 归档时间: |
|
| 查看次数: |
960 次 |
| 最近记录: |