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运行项目时,我无法在页面上看到我的样式。
有什么问题?
答案 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解决了我的问题。