2015-03-15 2 views
2

Я использую webapp2 для создания webapp с угловыми. Это структура каталогов.404 ошибка при загрузке js-файлов

|--test-app 
    |--lib 
    |--static 
    |--js 
     |--app.js 
     |--controller.js 
    |--lib 
     |--angular 
     |--angualr-bootstrap 
    |--index.html 
    |--app.yaml 
    |--mainapp.py 

Но когда я пытаюсь загрузить JS файлы index.html

<!DOCTYPE html> 
<html lang="en" ng-app="testApp"> 
    <head> 
    <script src="/static/js/app.js"></script> 
    <script type="text/javascript" src="/static/js/controller.js"></script> 
    </head> 
    <body> 
    <div ng-controller="MainController"> 
     IN MAIN 
    </div> 
    </body> 
</html> 

я получаю эти ошибки:

  1. GET http://localhost:8080/static/js/app.js (404 - файл не найден)

  2. GET http://localhost:8080/static/js/controller.js (404 - файл не найден)

Я не могу понять, почему я получаю эти ошибки.

Вот код app.yaml

application: test-app 
version: 1 
runtime: python27 
api_version: 1 
threadsafe: true 

handlers: 
- url: /.* 
    script: mainapp.app 

libraries: 
- name: webapp2 
    version: "2.5.2" 

Вот код mainapp.py

class Start(webapp2.RequestHandler): 
     def get(self): 
      self.response.headers['Content-Type'] = 'text/html' 
      self.response.write(open('static/index.html').read()) 

    app = webapp2.WSGIApplication([ 
     ('/', Start), 
    ], debug=True) 
+0

Я думаю, статический не нужен, это может быть просто src = "js/controller.js" и "js/app.js" – squiroid

+0

нет, это тоже не сработает. –

ответ

2

Вы должны явно объявить местоположение вашего статического контента в app.yaml:

handlers: 
- url: /static 
    static_dir: static 

handlers: 
- url: /.* 
    script: mainapp.app 

См docs для деталей:

В отличие от традиционной среды веб-хостинга, Google App Engine не обслуживает файлы непосредственно из исходного каталога вашего приложения, если не настроен для этого.

Образцы шаблонов URL-адресов обработаны в порядке, указанном в app.yaml, сверху донизу. В этом случае шаблон /static будет соответствовать шаблону /.* для соответствующих путей.

+0

Нет, это не решило проблему. Я все еще получаю файл 404, который не найден. –

+0

Вы указали _before_ свой '- url: /.*' обработчик? Порядок важен. – Selcuk

+0

Да, я сделал это, но не работал. Должен ли я вносить какие-либо изменения в mainapp.py? –

2

Я переместил index.html из статической папки и затем явно объявил статический URL-адрес, как сказал @Selcuk. И это работает.

+0

у вас могло бы быть это как комментарий к его ответу ... так как на самом деле это не ответ :) – Lipis

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