2012-11-27 57 views
3

我想弄清楚如何指定html模板和靜態文件的位置,例如Flask的JavaScript文件。模板和靜態資源在燒瓶中的自定義位置

我現在有一個結構,以允許加載像模塊這

/wsgi 
    /templates 
     /login.html 
     /logout.html 
     /menu.html 
    /static 
    /modules 
     /helloworld 
        /module.html 
        /module.json 
        /module.js 

我想能夠使用模板來加載例如JavaScript文件直接,而無需將其移動到靜態文件夾。

理想我想如果你使用的瓶的藍圖功能,做這樣的事情

moduleHtml = render_template(moduleHtmlPath) 

和模板

<script type=text/javascript src="{{ url_for('myModule', filename='module.js') }}"></script> 
+0

雷切爾的解決方案的替代方案是使用'''render_template_string'''手動加載HTML。 – eandersson

回答

5

裏面,你可以有藍圖的內部靜態文件。有點像你有什麼,只有你需要把他們放在一個「靜態」文件夾。該文檔有一個很好的例子:

http://flask.pocoo.org/docs/blueprints/#static-files

helloworld = Blueprint('helloworld', __name__, static_folder='static') 

,然後指靜態文件在模板中像這樣:

url_for('helloworld.static', filename='module.js') 

如果你不熟悉的藍圖,它的值得閱讀。他們很漂亮。

否則,燒瓶帶有一個內置的方式來引用全局靜態文件,但他們需要在根「靜態」目錄:

http://flask.pocoo.org/docs/quickstart/#static-files

url_for('static', filename='module.js') 
+0

謝謝。我會把它看作是一個可能的解決方案,但是我需要考慮更新Flask的版本,因爲服務器已經運行了一箇舊版本。 – eandersson

+0

這不是我正在尋找的東西,但最終我做了一些重新設計,並且完美地工作。謝謝。 – eandersson