Служение из Flask Я не могу загрузить файл JavaScript - PullRequest
1 голос
/ 15 апреля 2019

Я пытаюсь создать свое первое одностраничное приложение, следуя инструкциям, но не могу загрузить локальный файл javascript.

Мой код Python:

from flask import Flask, current_app


app = Flask(__name__, static_folder='')

@app.route('/')
def index():
    return current_app.send_static_file('index.html')

if __name__ == "__main__":
    app.run()

Мой HTML:

<!DOCTYPE html>
<html ng-app="myApp">
<head>
    <title>My Page</title>
    <script
    src="https://code.jquery.com/jquery-3.4.0.min.js"
    integrity="sha256-BJeo0qm959uMBGb65z40ejJYGSgR7REI4+CW1fNKwOg="
    crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.9/angular.min.js"></script>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
</head>
<body>

    <div ng-controller="IndexController">
        <p>{{message}}</p>
    </div>


    <script src="./static/js/app.js"></script>
</body>
</html>

Мой JavaScript:

var myApp = angular.module('myApp', []);

myApp.controller('IndexController', function($scope){
    $scope.message = 'binded ok';
});

Структура папок:

MyApp
 |-static
 | |-js
 |   |-app.js
 |-index.html
 |-server.py

Все загружается нормально, за исключением app.js, который дает мне:

URL-адрес запроса: http://localhost:5000/static/js/app.js

Код состояния: 404 НЕ НАЙДЕН

РЕДАКТИРОВАТЬ: Если я открываю index.html напрямую с помощью браузера, загружается app.js.Поэтому я думаю, что Flask создает проблему здесь.

Ответы [ 2 ]

0 голосов
/ 15 апреля 2019

Создайте свой App с app = Flask(__name__, static_folder='', static_url_path='')

0 голосов
/ 15 апреля 2019

Попробуйте ссылаться на ваш файл JS так:

<script src="{{ url_for('static', filename='static/js/app.js') }}"></script>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...