我正在写一个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 "
如何添加路线并添加响应者?
答案 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
提供服务。