我不知道我做错了什么。
我正在使用Twitter Bootstrap,前端的基本页面和后端的Python / WebApp2(非Google App Engine)服务。
如果我从Internet Explorer 8中的服务器加载页面,则会显示样式。
如果我从Chrome中的C:/加载页面,则会显示样式。
如果我在Chrome中从服务器加载页面,则不会显示样式。
我检查了所有的mime类型,比较了C:/和服务器页面,一切看起来都一样。
我不能为我的生活弄清楚为什么Chrome在Python / WebApp2服务时不会渲染样式表。
我无法弄清楚如何在没有实际处理的情况下放置代码,因此我使用的页面与此处显示的示例基本相同: http://twitter.github.com/bootstrap/getting-started.html
有什么想法吗?
css的Python脚本
非样式 - 在Chrome中查看由Python / Webapp2提供服务
样式 - 在Chrome中查看从C中拉出
非样式 - Chrome资源标签
样式 - Chrome资源标签
我可以在Chrome资源管理器标签中提取CSS文件并查看CSS文件的内容。没有警告它在控制台中被解释为text / xml。
答案 0 :(得分:1)
GAAAH我刚想通了!
在我的python代码中,你可以看到我正在使用'self.response.headers.add_header'。我想每当你使用'self.response.out.write'函数时,它默认都有'text / html'内容类型。如果你'添加标题',那么它会在最后的'text / html'标题之前添加'text / css'标题。然后,Chrome会读取最后一个标题,并将其用作样式表的内容类型。我猜IE和Opera使用的第一个? 无论如何:修复,使用:
self.response.headers['Content-Type'] = "text/css"
并作为一个整体
def css(self, css_dir, filename, extension):
self.response.headers['Content-Type'] = "text/css"
self.response.out.write(open(css_dir + filename + extension,"rb").read())
耶!
答案 1 :(得分:0)
我希望using webapp templates比代码中的直接响应HTML输出更好。
只需使用
创建index.html<html>
<head>
<link rel="stylesheet" href="{{path_to_css}}" type="text/css" />
</head>
<!-- body.. -->
然后您可以从代码中设置path_to_css
。使用这种方法,您可以将HTML,CSS与代码逻辑分开。