0

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

我想添加一条猎鹰应用程序路线,以便网页请求

/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 "

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

4

2 回答 2

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/jsURL 下你应该访问你的静态文件

于 2014-11-05T19:48:30.473 回答
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

于 2018-05-01T21:18:29.463 回答