在根目录中添加falcon应用程序路由

时间:2014-06-01 11:41:39

标签: python falcon

我正在写一个falcon应用程序来提供一些网页。现在我在根目录下的/ js / css下有一些js,css文件。这些/ js和/ css目录可以有多个子目录,文件可以位于其中一个子目录中。

我希望添加一个falcon apps路线,以便网页请求

/js/subdir1/subdir2/temp.js
/js/subdir1/temp2.js 

可以通过相同的响应方法来满足。

但是当我尝试时,添加了一个像

这样的路线
app.add_route("/js/{filename}", ResourceClass())

/js/subdir1/subdir2/temp.js的请求未到达响应者。

我的响应者如下,

class ResourceClass(object):
    def on_get(self, request, response, filename):
        file_path = os.path.join(path_to_js,filename)
        serve_file(response, file_path)

serve_file将创建相应的响应并将其返回。

我希望将文件名填充为

"subdir1/subdir2/temp.js" for "/js/subdir1/subdir2/temp.js" and
"subdir1/temp2.js" for "/js/subdir1/temp2.js "

如何添加路线并添加响应者?

2 个答案:

答案 0 :(得分:0)

如果您使用的是Apache,则可以按以下方式配置您的网站:

Alias /js/ /path/to/wsgi/js/

<Directory /path/to/wsgi/js>
    Order deny,allow
    Allow from all
</Directory>

WSGIScriptAlias / /path/to/wsgi/script.py

<Directory /path/to/wsgi>
    <Files script.py>
        Order allow,deny
        Allow from all
    </Files>
</Directory>

重新启动apache,在http://localhost/js网址下,您应该访问静态文件

答案 1 :(得分:0)

Falcon 1.4.1(或更早版本)提供静态文件服务,并为整个目录提供前缀。

asset_path = "/var/www/html/js/"
js_path = asset_path + "js/"
api.add_static_route('/assets', asset_path)
api.add_static_route('/assets/js', js_path)

..将为任何/var/www/html/js/*.js提供服务。