我正在为一些网页编写一个falcon应用程序。现在我在/js下有一些js、css文件,在root目录下有/css。这些/js和/css目录可以有多个子目录,文件可能位于其中一个子目录中。
我想添加一个猎鹰应用程序路线,以便网页请求
/js/subdir1/subdir2/temp.js
/js/subdir1/temp2.js
可以通过相同的应答器方法来满足。
但当我尝试时,添加了一条类似的路线
app.add_route("/js/{filename}", ResourceClass())
对/js/subdr1/subdr2/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 "
如何添加路由和响应程序?
如果您使用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
URL下访问静态文件
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)
将服务于任何CCD_ 2。