1

何が間違っているのかわかりません。

フロントエンドの基本ページでTwitterBootstrapを使用し、バックエンドでPython / WebApp2(Google App Engineではない)ですべてを提供しています。

Internet Explorer 8でサーバーからページを読み込むと、スタイルが表示されます。

ChromeでC:/からページを読み込むと、スタイルが表示されます。

Chromeのサーバーからページを読み込むと、スタイルが表示されません。

すべてのmimeタイプを確認し、C:/とサーバーのページを比較しましたが、すべて同じように見えます。

Python / WebApp2で提供されたときに、Chromeがスタイルシートをレンダリングしない理由を私は一生理解できません。

このテキストボックスに実際に処理せずにコードを配置する方法がわからないため、使用しているページは基本的に次の例と同じです: http ://twitter.github.com/bootstrap/getting- start.html

何か案は?

css用のPythonスクリプト http://i.stack.imgur.com/Tu4NX.png

スタイルなし-Chromeで表示されたPython/Webapp2によって提供されます http://i.stack.imgur.com/vfKIa.png

スタイル付き-Chromeで表示されたCから取得

http://i.stack.imgur.com/35C4S.png

スタイルなし-Chromeリソースタブ http://i.stack.imgur.com/HvQXt.png

スタイル付き-Chromeリソースタブ http://i.stack.imgur.com/Rel3r.png

Chromeの[リソース]タブでCSSファイルをプルアップして、CSSファイルの内容を確認できます。コンソールでtext/xmlとして解釈されるという警告はありません。 http://i.stack.imgur.com/5gTUO.png

4

2 に答える 2

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())

わーい!

于 2013-01-02T17:15:56.930 に答える
0

コードからのダイレクトレスポンスHTML出力よりもwebappテンプレートを使用したいと思います。

でindex.htmlを作成するだけです

<html>
<head>
 <link rel="stylesheet" href="{{path_to_css}}" type="text/css" />
</head>
<!-- body.. -->

その後path_to_css、コードから設定できます。このアプローチでは、HTML、CSSをコードロジックから分離できます。

于 2012-12-12T15:29:16.647 に答える