私は、CherryPyが返されたページに必要なCSSファイルを提供するのに時間を浪費しています。CherryPyからのCSSファイルの提供
私のディレクトリ構造:ab.htmlで
Application
ab.py (CherryPy application)
ab.config (CherryPy config file)
html\ (html template folder)
ab.html (html template file)
css\ (css folder)
ab.css (css file)
リンク声明:
<link href="/css/ab.css" rel="stylesheet" type="text/css" />
そして最後に、
[/]
tools.staticdir.root = "/"
[/css/ab.css]
tools.staticfile.on = True
tools.staticfile.filename = "/css/ab.css"
ab.configマイテンプレートがロードされ、にレンダリングブラウザは私が期待した通りだが、スタイリングは適用されていない。相対アドレス(../css/ab.css)を使用するようにテンプレートを変更し、テンプレートをブラウザでファイルとして開くと、スタイリングが適用されます。
アプリケーションを起動するときに、CherryPyが悪いパスについて文句を言っていないところまで設定ファイルを取得するのに、しばらく時間がかかりました。この時点で、レンダリングは開始され、レンダリングされ、正常に戻りますが、単にcssファイルをブラウザに表示するようには見えません。
大変助かりました。 fumanchuからの親切な提案に基づいて
更新:
がstaticdirを使用することを好む、と今ルートはファイルシステムの絶対パスを参照していることを理解し、私は今、configファイルでこれを持っている:
[/]
tools.staticdir.root = "c:/users/myaccount/documents/clientname/application"
[/css]
tools.staticdir.on = True
tools.staticdir.dir = "css"
私のHTMLで
私はこのスタイルシートのリンクを持っている:
<link href="/css/ab.css" rel="stylesheet" type="text/css" />
を私はトンとCherryPyにし始めています彼の:
cherrypy.quickstart(ABRoot(), '/', 'ab.config')
この設定では、私はまだ私のWebページでスタイリングを取得しません。私は、ページのソースをチェックして、直接/css/ab.cssリンクをクリックすると、私は(私はWindowsマシン上で開発しています)
NotFound: (404, "The path '/css/ab.css' was not found.")
を取得します。
相対URLに変更がなければ、あなたはそれが提供されていますように、ページのソースを表示し、ソース内の「/css/ab.css」アドレスをクリックすることができますか? – syrion
私はCcyPyハンドラから/css/ab.cssへのリクエストが静的ファイルとして提供されるのではなく、ディスパッチメカニズムの対象であることを示す例外を受け取ることができます。 –
ハンドラからの結果は、相対パスになります。 /css/ab.cssで "NotFound:(404、"パス '/css/ab.css'が見つかりませんでした ")"というメッセージが表示されます。 –