1

localhost:8080ブラウザで移動したときに背景が青くならないのはなぜですか?次の3つのファイルはすべて同じディレクトリにあります。

wsgiwebsite.py

#!/usr/bin/env python
from wsgiref.simple_server import make_server

cont = (open('wsgiwebsite_content.html').read())

def application(environ, start_response):
    start_response('200 OK', [('Content-Type', 'text/html')])
    return [cont]

server = make_server('0.0.0.0', 8080, application)
server.serve_forever()

wsgiwebsite_content.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html>
  <head>
    <link rel="stylesheet" type="text/css" href="wsgiwebsite_style.css">
  </head>

  <body>
    This is my first web page
  </body>
</html>

wsgiwebsite_style.css

body{background-color:blue;}
4

4 に答える 4

1

wsgiサーバーを介してcssをロードしようとしましたが、サーバーは常にhtmlファイルを返すだけです。firebug / web inspector / ...を調べて、cssファイルに対するサーバーからの応答を確認してください。

于 2012-05-15T17:05:17.200 に答える
1

WSGIはPythonコードのみを提供し、おそらくそのCSSファイルの存在についてさえ知りません。

静的アセットを処理するようにWebサーバーを構成するか、静的メディアを提供するために静的などを使用することができます。

于 2012-05-15T17:10:20.690 に答える
1

以下のこのコードスニペットは、学習を目的としています。静的ディレクトリを作成し、そこにindex.htmlファイルとcssファイルを保存したため、自分のソースコードファイルにアクセスできません。

from wsgiref.simple_server import make_server                                    
import os                                                                        


def content_type(path):                                                          
if path.endswith(".css"):                                                    
    return "text/css"                                                        
else:                                                                        
    return "text/html"                                                       


def app(environ, start_response):                                                
    path_info = environ["PATH_INFO"]                                             
    resource = path_info.split("/")[1]                                           

    headers = []                                                                 
    headers.append(("Content-Type", content_type(resource)))                     

    if not resource:                                                             
        resource = "index.html"                                                  

    resp_file = os.path.join("static", resource)                                 

    try:                                                                         
        with open(resp_file, "r") as f:                                          
            resp_file = f.read()                                                 
    except Exception:                                                            
        start_response("404 Not Found", headers)                                 
        return ["404 Not Found"]                                                 

    start_response("200 OK", headers)                                            
    return [resp_file]                                                           

s = make_server("0.0.0.0", 8080, app)                                            
s.serve_forever()                                              
于 2015-07-24T03:17:53.107 に答える
0

Denisコードは私にとって問題をほぼ解決しました、しかし私はいくつかの変更/修正をする必要がありました、そしてこれは私が働いたものです:

from wsgiref.simple_server import make_server
from cgi import parse_qs, escape

import codecs                                                                       
                                                                             
                                                                             
def tipoDeConteudo(path):
    if path.endswith(".css"):
        return "text/css"
    else:
        return "text/html"                                                       
                                                                             
                                                                             
def web_app(environment, response):                                                
    caminho = environment["PATH_INFO"]
    resource = caminho.split("/")[1]

    headers = []
    headers.append(("Content-Type", tipoDeConteudo(resource)))                   
                                                                             
    try:
        resp_file = codecs.open("indexResposta.html", 'r').read()
    except Exception:
        response("404 Not Found", headers)
        return ["404 Not Found"]                                                 
                                                                             
    response('200 OK', headers)
    return [resp_file.encode()]                                                        
                                                                             
s = make_server("0.0.0.0", 8080, app)                                            
s.serve_forever()                                              
于 2020-11-09T21:03:07.700 に答える