2014-02-15 7 views
2

Слушатель времени, первый раз.Google App Engine, Jinja2 CSS Таблицы стилей не загружаются (404)

У меня возникают некоторые неприятные, казалось бы необъяснимые проблемы с Google App Engine, Jinja2 и CSS.

Мои шаблоны работают, функциональность моего приложения работает (пользователи, сообщения в блогах и т. Д.), Но файл CSS показывает большой, толстый 404 в моих средствах отладки Chrome и в моих журналах Google App Engine. Почему моя /stylesheets/main.css не загружается?

Уважаемый интернет, я бы хотел услышать, что это только опечатка. Я уверен, что я просто идиот.

Вот мой каталог файлов:

stylesheets 
    main.css 
templates 
    base.html 
    blog.html 
    front.html 
    login.html 
    newpost.html 
    signup.html 
    welcome.html 
app.yaml 
blogs.py 
favicon.ico 
index.yaml 
main.py 
users.py 
utilities.py 

Вот мой YAML файл:

application: hello-udacity-5681 
version: 1 
runtime: python27 
api_version: 1 
threadsafe: yes 

handlers: 
- url: /favicon\.ico 
    static_files: favicon.ico 
    upload: favicon\.ico 

- url: /.* 
    script: main.app 

- url: /stylesheets 
    static_dir: stylesheets 

libraries: 
- name: webapp2 
    version: "2.5.2" 

- name: jinja2 
    version: latest 

Вот мой main.py:

import webapp2 
import os 
import jinja2 

from google.appengine.ext import db  

template_dir = os.path.join(os.path.dirname(__file__), 'templates') 
jinja_env = jinja2.Environment(loader = jinja2.FileSystemLoader(template_dir), autoescape = True) 

class Handler(webapp2.RequestHandler): 
    def write(self, *a, **kw): 
     self.response.out.write(*a, **kw) 

    def render_str(self, template, **params): 
     t = jinja_env.get_template(template) 
     return t.render(params) 

    def render(self, template, **kw): 
     self.write(self.render_str(template, **kw)) 

class MainHandler(Handler): 
    def render_front(self): 
     self.render("base.html") 

    def get(self): 
     self.render_front() 

Вот мой base.html:

<!DOCTYPE html> 

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

    <title>Blog</title> 

</head> 

<body> 
    <a href="/" class="main-title">Blog</a> 

</body> 
</html> 

Я без проблем пропустил свой main.css через http://jigsaw.w3.org/css-validator/, поэтому я не буду вас утомлять.

Почему я все еще получаю 404 для моего /stylesheets/main.css?

+0

Что касается меня, то единственное, что в конечном счете работал, была это [решение] [1] [1]: http://stackoverflow.com/a/31591467/1665739 – smoothBlue

ответ

5

Ваш app.yaml раздел обработчик должен быть, как это

handlers: 
- url: /favicon\.ico 
    static_files: favicon.ico 
    upload: favicon\.ico 

- url: /stylesheets 
    static_dir: stylesheets 

- url: /.* 
    script: main.app 

В этом случае /stylesheets модель будет соответствовать до /.* паттерна для соответствующих путей. Для получения дополнительной информации о сопоставлении URL-адресов и других параметрах, которые вы можете указать в app.yaml, см. Раздел app.yaml reference.

+0

Это установил ее! Огромное спасибо. Эта ошибка была просто _killing_ меня. Я обещаю, что всегда буду читать справочное руководство перед публикацией здесь снова. :) –

Смежные вопросы