在根目录下添加Falcon应用路由
我正在写一个Falcon应用程序,用来提供一些网页。现在,我在根目录下有一些js和css文件,分别放在/js和/css文件夹里。这些/js和/css文件夹可以有多个子文件夹,文件可能放在其中的某个子文件夹里。
我想添加一个Falcon应用的路由,这样网页请求
/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
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
这个路径下的文件。
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
这个网址下,你就可以访问到你的静态文件了。