3

CherryPyWebアプリから動的に生成された出力を伴う静的XMLスタイルシートを提供するのに問題があります。静的テキストファイルを提供する私のテストケースでさえ失敗します。

静的ファイルblah.txt/static、アプリケーションのルートディレクトリのディレクトリにあります。

私のメインサイトファイル(conesearch.py​​にはCherryPy ConeSearchページハンドラークラスが含まれています):

import conesearch
cherrypy.config.update('site.config')
cherrypy.tree.mount(conesearch.ConeSearch(), "/ucac3", 'ucac3.config')
...

そして、site.config私には次のオプションがあります:

[/]
tools.staticdir.root: conesearch.current_dir

[/static]
tools.staticdir.on: True
tools.staticdir.dir: 'static'

どこcurrent_dir = os.path.dirname(os.path.abspath(__file__))conesearch.py

ただし、私の単純なテストページ(http://www.cherrypy.org/wiki/StaticContentから直接取得)は404で失敗します。

def test(self):
        return """
        <html> 
        <head>
        <title>CherryPy static tutorial</title>
        </head>
        <body>
        <a href="/static/blah.txt">Link</a>
        </body>
        </html>"""
test.exposed = True

127.0.0.1:8080/static/blah.txtにアクセスしようとしていますが、これは私の考えではAOKであるはずです。何か考えや提案はありますか?

乾杯、

サイモン

4

3 に答える 3

4

cherrypy.config.update単一レベルのディクショナリ (ほとんどのserver.*エントリ) のみを受け取る必要がありますが、実際にはアプリごとにする必要がある (したがって に渡される) マルチレベルの設定ディクショナリを渡していますtree.mount

それら[/][/static]セクションをsite.configファイルからファイルに移動するとucac3.config、正常に機能するはずです。

于 2010-03-23T21:44:24.747 に答える
3

次のような静的ファイルを提供します。

config = {'/static':
                {'tools.staticdir.on': True,
                 'tools.staticdir.dir': PATH_TO_STATIC_FILES,
                }
        }

cherrypy.tree.mount(MyApp(), '/', config=config)
于 2010-03-23T07:42:06.940 に答える
1

私は同様の設定をしています。サイトのルートをhttp://mysite.com/siteに、サイト/アプリのルートを/path/to/www にするとします。

server.cfg に次の構成設定があり、問題なく静的ファイルを見つけています。

[global]
...
app.mount_point = '/site'
tools.staticdir.root = '/path/to/www/'
[/static]
tools.staticdir.on = True
tools.staticdir.dir = 'static'

cssだけでなく、静的ディレクトリ内から問題なくdojoファイルなどを提供しています。また、テンプレート化には genshi を使用しており、cherrypy.url() 呼び出しを使用して、他の URL が適切に設定されていることを確認しています。これにより、app.mount_point を変更し、リンクも更新できます。

于 2010-04-28T19:16:30.543 に答える