Flask Render_Template [重複]中に相対パスを使用して見つからないJavaScriptファイルが見つかりません。 -- javascript フィールド と python フィールド と templates フィールド と flask フィールド と path フィールド 関連 問題

Javascript file not found using relative path during Flask render_template [duplicate]












3
vote

問題

日本語

PythonとFlaskを使って単純なインタラクションWebアプリを構築しています。 Localhostのテスト:5000 Chromeを使って。

私は1つのテンプレートと1つの関連するJavaScriptファイルがあります。 ./templates/main.html. ./templates/main_scripts.js

main.htmlテンプレートには、次のようなスクリプトファイルが含まれています。

<事前> <コード> <script src="main_scripts.js"></script>

このPythonコードを使用してテンプレートをレンダリングしたとき...

<事前> <コード> return render_template('main.html', session_id=session_id, title=sess.title)

main.htmlページがレンダリングされますが、Chromeコンソールでこのエラーが発生します。

<事前> <コード> Failed to load resource: the server responded with a status of 404 (NOT FOUND)

Chrome Consoleの使用エラーが発生したときに、エラーが発生したときに非表示の「main_scripts.js」の場所を調べると、ブラウザはそれが私の仮想環境の内側からそれをロードしようとしていると次のように考える:

<事前> <コード> ./env/Scripts/main_scripts.js

...、テンプレートと同じディレクトリからではありません。

スクリプトファイルがどこにあるのかをレンダリングされたテンプレートに理解するように強制することはできません。これまでのところ、私は「。/ main_scripts.js」、さらには「/appdir/main_scripts.js」のようなSRCパスをまったく同じ結果を除いて試みました。

英語

I'm using Python and Flask to build a simple interaction web app. Testing on localhost:5000 using Chrome.

I have one template and one associated javascript file located at: ./templates/main.html ./templates/main_scripts.js

The main.html template includes the scripts file like this:

<script src="main_scripts.js"></script> 

When I render the template using this Python code...

return render_template('main.html', session_id=session_id, title=sess.title) 

The main.html page is rendered, but I get this error in the Chrome console:

Failed to load resource: the server responded with a status of 404 (NOT FOUND) 

Using the Chrome console to inspect the location of the unfound 'main_scripts.js' when the error occurs, the browser thinks it is trying to load it from inside my virtual environment at:

./env/Scripts/main_scripts.js 

...and not from the same directory as the template.

I can't seem to force the rendered template to understand where it's script file is located. So far I have tried src paths like "./main_scripts.js" and even "/appdir/main_scripts.js" with the exact same results.

</div
              
 
 

回答リスト

18
 
vote
vote
ベストアンサー
 

最初に LocationChanged4 フォルダと同じレベルに LocationChanged3 フォルダを作成する必要があります。その後、 LocationChanged5 サブフォルダを作成し、そのフォルダにJSファイルを入力します。これであなたはあなたのHTMLでそれを呼び出すことができます。
これがそれを行う "Pythonic"方法です:

<事前> <コード> Form116

説明されているようにここ公式フラスコの文書では、あなたのプロジェクト構造はこのように見えるべきです:

<事前> <コード> LocationChanged7
 

You first need to create a static folder at the same level as the templates folder. Then create a js subfolder and put the js file in that folder. Now you can call it in your html.
Here's the "pythonic" way do that:

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

As explained here in the official Flask documentation, your project structure should look like this:

/yourapplication     yourapplication.py     /static         /css             style.css         /js             main_scripts.js     /templates         main.html         ... 
</div
 
 
 
 

関連する質問

3  UNIXパス検索C機能[閉じる]  ( Unix path searching c function ) 
ここで尋ねられていることを知るのは難しいです。この問題はあいまい、曖昧で、不完全で、過度に広く、または修辞的であり、現在の形で合理的に回答することはできません。再開できるようにこの質問を...

4  XElement.Load( "〜/ app_data / file.xml")はパスの一部を見つけることができませんでした  ( Xelement load app data file xml could not find a part of the path ) 
LinqToxMLでは新規です。 XElement.Load( "")メソッドを使用したいです。しかし、コンパイラは私のファイルを見つけることができません。 XMLファイルに正しいパスを書くのを手伝ってくれることができますか? 注:APP_CODEでクラスを...

81  OpenFileDialog Path / FileNameからのパスを抽出する  ( Extracting path from openfiledialog path filename ) 
ファイルの選択から始まる少しのユーティリティを書いているので、フォルダを選択する必要があります。選択したファイルがどこにあるかのフォルダをデフォルトにしたいのですが。 OpenFileDialog.FileName はフルパス&アンプを返します。 file...

0  パスに特定のクラススタイルを追加します  ( Add a specific class style to a path ) 
特定のパスに一致するCSSにクラスを追加する方法を探しています(たとえば、私のパスの名前は「都市」で、他の色のストロークや塗りつぶしに適用したいと思います。 私はさまざまな方法でそれを試してみましょう。それは可能ですか? 事前にありがとう! ...

0  パス内のスペースを備えたCygwinのWindowsの下のBashでjava.exeを呼び出す方法  ( How to invoke java exe in bash under windows in cygwin with space in path ) 
Cygwinを使用してWindows(Win XP)上のBashスクリプト内のJavaを起動しようとしました。 ただし、java.exeへのパスにスペースが含まれています。 このようにしてやるようにしばらくした文字通りの文字通りのみ: <事前> <コード> ...

66  絶対パスWeb相対パスに戻る  ( Absolute path back to web relative path ) 
Server.Mappathを使用してファイルの存在を見つけて検証することができたら、そのファイルに直接ユーザーを送信したい場合は、その絶対パスを変換する最速の方法となります。相対的なWebパスに戻る? ...

1  WordPressサイトのローカルコピーURLを複製します  ( Local copy of wordpress site duplicates url ) 
WordPressサイトのローカルコピーを作成しようとしています。ファイルをダウンロードした後、Rows SiteUrlとHomeでは、サイトのURLをWP_Optionのテーブルのlocalhostに変更します。 その後問題が始まります。 パスはU...

492  パスとファイル名から違法文字を削除する方法  ( How to remove illegal characters from path and filenames ) 
単純な文字列から、不正なパスとファイル文字を削除する堅牢で簡単な方法が必要です。私は以下のコードを使いましたが、それは何もしていないようです、私は何がありませんか? <事前> <コード> using System; using System.IO; name...

84  外部ファイル内のJavaScriptの相対パス  ( Relative paths in javascript in an external file ) 
だから私はこのJavaScriptを実行していて、背景画像へのパスを除いてすべてがうまく機能します。私のローカルのASP.NET DEV環境で動作しますが、仮想ディレクトリ内のサーバーに展開するとうまくいきません。 これは外部.jsファイル、フォルダ構造はです...

9  致命的なエラーC1083:インクルードファイルを開くことができません: 'windows.h':およびscons  ( Fatal error c1083 cannot open include file windows h and scons ) 
今日は正式にはC ++での初日です.p オープンソースに手を取得したいので、Windows Server 2003 SP1用のVisual C ++ 2005 Express EditionおよびMicrosoft Platform SDKをダウンロードしま...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有