2015-10-28 7 views
-1

Что я хочу сделать, это просто отправить вниз HTML + CSS + JS файлы как статические страницы на некоторых маршрутах, такие как:сервировка HTML + CSS + JS (угловой) с колбой

@app.route('/', methods=[GET]) 
def index(): 
    return <html+css+js> 

Особенно я хотел бы держаться подальше от шаблонов и полагаться на ajax/websocket, подключаясь к другим маршрутам флеш-приложения, чтобы получить объекты JSON и обновить веб-страницу. Также мне было трудно связать css и js-файлы в html. Метод url_for, похоже, полностью полагается на систему шаблонов и, похоже, не работает должным образом в моем случае.

например.

Directory Structure

  • редирект-сервер (приложение домашняя папка)
    • статический
    • index.html
    • main.js
    • venv (python3 virtualenv)
    • основной. py (колба app)

main.py

from flask import Flask, redirect 
from flask import render_template 

app = Flask(__name__) 

@app.route('/') 
def index(): 
    return redirect("/abc/xyz") 

@app.route('/abc/xyz') 
def abc(): 
    return app.send_static_file("index.html") 

app.run(debug=True) 

index.html

<!DOCTYPE html> 

<html> 
    <head> 
     <title>Hello</title> 
     <script type="text/javascript" src="{{ url_for('static', filename='main.js') }}"></script> 
    </head> 
    <body> 
     <h1>Welcome!</h1> 
    </body> 
</html> 

Ошибки я получаю следующее

127.0.0.1 - - [28/Oct/2015 14:07:02] "GET /abc/%7B%7B%20url_for('static',%20filename='main.js')%20%7D%7D HTTP/1.1" 404 -

HTML, возвращается в порядке, но он не может найти файл js

ответ

0

нет никакого способа, я мог бы найти эту работу, не полагаясь на шаблонах.

Следующие работал для меня

реструктуризации моих каталогов следующим

  • Redirect-сервер
    • статической
      • основных.JS
    • шаблоны
      • index.html
    • main.py

main.py

from flask import Flask, redirect 
from flask import render_template 

app = Flask(__name__) 

@app.route('/') 
def index(): 
    return redirect("/abc/xyz") 

@app.route('/abc/xyz') 
def abc(): 
    return render_template("index.html") 

app.run(debug=True) 

index.html

<!DOCTYPE html> 

<html> 
    <head> 
     <title>Hello</title> 
     <script type="text/javascript" src="{{ url_for('static', filename='main.js') }}"></script> 
    </head> 
    <body> 
     <h1>Welcome!</h1> 
    </body> 
</html> 
0

Вы отправить шаблон как статического файла.

app.send_static_file("index.html") 

Лучше render it, as shown in the docs :)

+0

уже упоминали выше, что связывая его с JS не работает –

+0

@IshanKhare: Подставляя эти выражения шаблона ** на сервере ** точно, как колба, Джанго, Mason, Catalyst и др. работа и работа с этим механизмом парадигмы имеют мало шансов на успех, не говоря уже о доставке поддерживаемого кода. Не могли бы вы уточнить, какие симптомы вы пытаетесь выразить, «связывая его?» С js «не работает»? –

+0

Пожалуйста, прочтите весь вопрос –