2010-04-21 2 views
1

Я не могу отображать изображения на страницах, созданных с помощью Google App Engine (Python).Невозможно отобразить изображение в Google App Engine (Python)

Мой файл app.yaml имеет:

- url: /images 
    static_dir: images 

И файл питон:

self.response.out.write("""<img src = '/images/title.gif' />""") 

Изображение еще не отображается на странице.

Благодаря

+0

Этот бит в вашем приложении app.yaml приходит после другого, который также соответствует «/images/title.gif», например «. *»? – geoffspear

+0

да. он сделал. Но даже когда я изменил заказ, он не сработал – Milee

ответ

1

Я бы тест:

  1. Вы видите http://yourapp.appspot.com/images/title.gif?
  2. Вы уверены, что папка с изображениями находится в вашем корневом каталоге приложения?
  3. Title.gif - «рабочий» образ?

Я бы порекомендовал вам использовать статическую папку для хранения статического содержания организованного в подпапках:

Root 
    static 
    images 
    stylesheets 
    javascripts 
    app.yaml 

и Mapping URL-адрес/изображения, как это.

- url: /images 
    static_dir: static/images 
    mime_type: image/png 

mime_type: image/png не является обязательным; если не указано, тип MIME для файла будет получен из расширения файла.

+0

Нет, он этого не делает. Если у него есть директория с именем «images» из корневого каталога вашего приложения, то, что он перечисляет, должен работать нормально. –

+0

Вы правы, спасибо Нику. – systempuntoout

+0

У меня была папка с изображениями в моем корне. Root images app.yaml – Milee

0

Есть ли в корневом каталоге вашего приложения каталог под названием «изображения»? Что он содержит? Что вы получите, если попытаетесь напрямую загрузить файл?

+0

Каталог изображений находится в моей корневой папке. Он имеет изображение title.gif. Когда я запускаю это, отображение страницы, но изображение нет. Я также не могу получить к нему доступ напрямую, как в http://yourapp.appspot.com/images/title.gif – Milee

+0

Если каталог изображений находится в корневом каталоге, проблема проста: re указывая в app.yaml статично/изображения, но это просто в «изображениях». –

0

Причина может заключаться в разнице между верхними и нижними регистрами между системами. Windows не является верхней/нижней чувствительной, но Linux. Предположим, что ваше фактическое имя файла - Title.GIF. Он работает, если он написан как title.gif на компьютере под управлением Windows (ваш локальный компьютер), но не работает на сервере Linux (Google App Server).

1

У меня возникла аналогичная проблема. Решение было в конечном счете очень простым. Вы должны попытаться изменить обработчик URL-адрес для статического каталога перед apphandler для main.app так:

обработчики:

  • URL: /favicon\.ico static_files: favicon.ico загрузка: favicon\.ico
  • URL : /photos static_dir: photos
  • URL: .* сценарий: main.app

Это раздражало меня за 45 минут, прежде чем я нашел решение на google.

0

Возможна одна из возможных причин этого, если вы не предоставили пространство между - url и если вы не перезагрузите сервер. Он покажет 404. Если вы перезагрузите свой сервер, вы столкнетесь с ошибкой в ​​app.yaml. Это одна очень распространенная ошибка, которую совершают люди.Потому что, как вы это сделали, кажется, что он должен работать нормально.