2015-09-04 106 views
1

javascript文件我想以包括像靜態URL外部javascipt的文件:不能包含外部靜態URL

<script type="text/javascript" src="{{ url_for('static/js', filename='test.js') }}"></script> 

,但得到以下錯誤:

werkzeug.routing.BuildError: ('static/js', {'filename': 'test.js', 'lang': 'en'}, None) 

我用用於後端編程的python燒瓶框架。如果我在HTML文件中展開javascript,它會很好用。

+0

你有一個'static/js/test.js'在你的項目的根目錄嗎? –

+0

我geuss。至少我可以通過'http://127.0.0.1:5000/static/js/test.js'訪問javascript文件。 – ericMTR

+0

'url_for'的第一個參數是端點的名稱。 Flask提供了一個名爲'static'的命令。任何路徑信息,例如'js /'都應該包含在'filename'參數中。 – dirn

回答

3

根據這個答案https://stackoverflow.com/a/20647713/541038

你應該這樣做

<script type="text/javascript" src="{{ url_for('static", filename='/js/test.js') }}"></script> 

[編輯]順便說一句,你可能只需要做

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

(這是我引用我的靜態文件...除非我確定我會將它們移動到異地(如果我將整個應用程序移動到其雲端(如果我打算從diff中爲靜態資源提供服務) erent服務器))

+0

那麼,我不會再犯這個錯誤,但仍然無法訪問我的基本功能。我也嘗試了你的第二個建議 - 同樣的結果。你如何訪問你的功能?也許我這樣做是完全錯誤的... – ericMTR

+0

你應該在項目的根目錄下有一個名爲'static'的文件夾(在'templates'文件夾旁邊......並且在靜態你應該有一個文件夾'js'並且在該文件夾中你應該有'test.js' ...也打f12到,然後點擊網絡標籤,看看它正在嘗試登錄的網址 –

+0

也我認爲它可能需要在第二個例子中的主要斜槓...(也許第一...我不知道) –