Google App引擎无法查看我的CSS文件

时间:2012-02-22 07:47:22

标签: google-app-engine

Google Appengine 我正在开发一个Google App引擎项目,但我看不到我的CSS。代码看起来很简单。我的样式在html页面上看不到。

我的app.yaml文件如下所示:

application: paymentgateway
version: 1
runtime: python
api_version: 1

handlers:

- url: .*
  script: main.py

- url: /css
  static_dir: css

我的main.py文件如下:

from google.appengine.ext import webapp
from google.appengine.ext.webapp import util
from google.appengine.ext.webapp import template



class MainHandler(webapp.RequestHandler):
    def get(self):
       self.response.out.write(template.render('account_type.html',''))


def main():
    application = webapp.WSGIApplication([('/', MainHandler)],
                                     debug=True)
    util.run_wsgi_app(application)


if __name__ == '__main__':
    main()

account_type.html如下所示:

<html>
<head>
<title></title>
<link href="css/styles.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="formwrap">
<div id="form">
<fieldset><legend><h3>Select Country and Account Type</h3></legend>
<form action="registration_form.html" method="post">
<div class="row">
<div class="label">Select Country </div><!--end .label-->
<div class="input">
<select name="country" class="detail" >
<option>--select country--</option>
<option>Uganda</option>
<option>Kenya</option>
<option>Tanzania</option>
<option>Rwanda</option>
</select>
</div><!--end .input-->
</div><!--end .row-->

<div class="row">
<div class="label">Account Types</div><!--end .label-->
<div class="input">
<input type="radio" name="account" class=""/>
</div><!--end .input-->
</div><!--end .row-->

<div id="submit">
<input id="submit" type="submit" name="submit" value="NEXT">
</div><!-- end #submit -->
</form>
</fieldset>
</div><!--end #form-->
</div><!--end #formwrap-->
</body>
</html>

我的css在css文件夹中。

styles.css如下所示:

body {
background:#E9E9E9;
}


#formWrap {
  width:720px;
  margin-top:30px;
  margin-left:30px;
  background:#FFF;
  border:1px solid #f1f1f1;
   -moz-border-radius:20px;
   -moz-box-shadow:2px 2px 5px #999;
   -webkit-border-radius:20px;
   -webkit-box-shadow:2px 2px 5px #999;
   padding:16px 10px 40px;

}
 #formWrap #form {
border:0px solid #EEE;
width:720px;


}
#form .row {

border:0;
display:block;
line-height:38px;
overflow:auto;
padding:24px 0px;
width:100%;
}
#form .row .label {
font-size:16px;
font-weight:bold;
font-family:Arial, Helvetica, sans-serif;
width:180px;
text-align:right;
float:left;
padding-right:10px;
margin-right:10px;



 }
 #form.row .input {
float:left;
margin-right:10px;
width:auto;
 }

 .detail{
width:260px;
font-family:Arial, Helvetica, sans-serif;
font-size:20px;
padding:7px 8px;
margin:0;
display:block;
border-radius: 5px 5px 5px 5px;
  background:#E9E9E9;
border:1px solid #CCC;
}
 .detail:focus{
 background-color:#FFF;
 border: 1px solid #999;
 outline: none;

}

 .message{
width:400px;
max-width:400px;
height:280px;
overflow:auto;
font-family:Arial, Helvetica, sans-serif;
font-size:20px;
padding:7px 8px;
line-height:1em;
margin:0;
display:block;

}

#form .row .context {
color:#000;
font-size:16px;
line-height:14px;
font-family:Arial, Helvetica, sans-serif;
margin-left:5px;

 }
 #formWrap #form #submit {
 font-family:Arial, Helvetica, sans-serif;
 margin-top:25px;
 margin-left:120px;
 color:#000;
font-size:16px;
text-shadow:1px 1px 1px #999;
padding:10px;
width:150px;
height:40px;

 }
span.error{
color:#000;
display:block;
font-family:Arial, Helvetica, sans-serif;
background-image:url(file:///C|/wamp/www/ContactForm/images/x.png);
background-repeat:no-repeat;
background-position:left 6px;
padding-left:25px;


}

所以,当我使用Python Google Appengine运行项目时,我无法在页面上看到我的样式。

有什么问题?

2 个答案:

答案 0 :(得分:17)

来自文档:

URL handler path patterns are tested in the order they appear in app.yaml

app.yaml的问题是所有网址都映射到main.py,因此永远不会到达您的静态处理程序。

所以你的app.yaml应该是这样的:

application: paymentgateway
version: 1
runtime: python
api_version: 1

handlers:

- url: /css
  static_dir: css

- url: .*
  script: main.py

请注意,此处的css静态处理程序在应用程序处理程序之前列出了

答案 1 :(得分:0)

如果你只是在使用chrome或safari时才会看到这个问题,你可能只会面临同样的问题,即AppEngine中的一个错误,返回null作为css文件的内容类型。升级到1.6.2.1解决了我的问题。