js в html на gcp (локальное тестирование) не работает - PullRequest
0 голосов
/ 23 января 2019

Я работаю с облачной платформой Google под интерфейсным приложением с python.

Я пытаюсь запустить функцию java-скрипта из отдельного файла при отладке на локальном компьютере с помощью Google App Engine Launcher.

Я также использую Python.

У меня четыре файла в одной папке:

app.yaml:

application: test
version: 1
runtime: python27
api_version: 1
threadsafe: yes

handlers:
- url: .*
  script: main.app

- url: /.js
  static_files: /test.js
  upload: /test.js  

libraries:
- name: webapp2
  version: "2.5.2"
- name: jinja2
  version: latest
- name: markupsafe
  version: latest

main.html:

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <title>HELLO</title>

  <script type="text/javascript" src="test.js"></script>

</head>

<body>
    <input type="button" name="Test" value="Test" onclick="testclick()"/>
</body>

</html>

main.py:

import jinja2
import os
import webapp2

template_env = jinja2.Environment(
    loader=jinja2.FileSystemLoader(os.getcwd()))

class MainHandler(webapp2.RequestHandler):
    def get(self):
        template = template_env.get_template('main.html')        
        self.response.out.write(template.render())

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

и test.js:

function testclick()
{
    alert('module test.js');
}

Я получаю ошибку GET http://localhost:8080/test.js net :: ERR_ABORTED 404 (не найдено) при нажатии на кнопку.

Как мне изменить yaml-файл для решения этой проблемы?

1 Ответ

0 голосов
/ 24 января 2019

Порядок обработчиков в файле app.yaml имеет значение, ваша запись /.js никогда не будет обработана, потому что сначала она будет соответствовать шаблону .*, вам необходимо изменить их порядок.

Итак, я отредактировал ваш app.yaml файл, и он прекрасно работает для меня.

application: test
version: 1
runtime: python27
api_version: 1
threadsafe: yes

handlers:
- url: /test.js
  static_files: test.js
  upload: test.js  

- url: .*
  script: main.app

libraries:
- name: webapp2
  version: "2.5.2"
- name: jinja2
  version: latest
- name: markupsafe
  version: latest
...