在GAE上运行时,外部CSS样式表不起作用

时间:2012-05-10 02:05:31

标签: python google-app-engine jinja2

我有main.html链接到web.css,当我运行主文件时,它运行良好的CSS,但当我在谷歌应用程序引擎上运行整个事情时,它不适用于CSS。从GAE日志我得到

INFO     2012-05-10 01:58:46,526 dev_appserver.py:2891] "GET /web.css HTTP/1.1" 404 -
INFO     2012-05-10 01:58:46,540 dev_appserver.py:2891] "GET /favicon.ico HTTP/1.1" 200 -

这是我的html文件

<html>
    <head>
        <link rel="stylesheet" type="text/css" href="web.css"/>
    </head>
    <body>
        <h1> Hi </h1>
    </body>
</html>

这是我的代码

import os
import webapp2
import jinja2
import re
from datetime import datetime
from google.appengine.ext import db
from utility_functions import valid_username, valid_password, valid_email

class Handler(webapp2.RequestHandler):    
    def render(self, link, values={}):
        je = jinja2.Environment(autoescape=True, loader=jinja2.FileSystemLoader(
            os.path.join(os.path.dirname(__file__), 'templates')))

        template = je.get_template(link)
        self.response.out.write(template.render(values))        


class MainPage(Handler):
    def get(self):
        self.render('main.html')


handlers = [('/', MainPage)]
app = webapp2.WSGIApplication(handlers, debug=True)

2 个答案:

答案 0 :(得分:7)

对于偶然发现此问题的其他人,应使用static file handler声明静态文件。例如,这提供了一个名为css的目录,该目录将应用程序目录根目录中的目录css映射到appspot域根目录下的公共可用css目录:

- url: /css
  static_dir: css

答案 1 :(得分:4)

将此添加到您的app.yaml

- url: /web.css
  static_files: web.css
  upload: web.css