Python 如何让浏览器缓存静态文件?

Python 如何让浏览器缓存静态文件?,python,browser-cache,web.py,Python,Browser Cache,Web.py,最近,我使用web.py来构建我的应用程序,发现我的静态文件在每个请求中都被传输 下面是我的日志: 10.18.40.100:49458 - - [19/Jun/2014 17:03:45] "HTTP/1.1 GET /css/bootstrap.css" - 200 OK 10.18.40.100:49459 - - [19/Jun/2014 17:03:45] "HTTP/1.1 GET /css/bootstrap-responsive.css" - 200 OK 10.18.40.10

最近,我使用web.py来构建我的应用程序,发现我的静态文件在每个请求中都被传输

下面是我的日志:

10.18.40.100:49458 - - [19/Jun/2014 17:03:45] "HTTP/1.1 GET /css/bootstrap.css" - 200 OK
10.18.40.100:49459 - - [19/Jun/2014 17:03:45] "HTTP/1.1 GET /css/bootstrap-responsive.css" - 200 OK
10.18.40.100:49460 - - [19/Jun/2014 17:03:45] "HTTP/1.1 GET /js/jquery-1.8.2.min.js" - 200 OK
10.18.40.100:49461 - - [19/Jun/2014 17:03:45] "HTTP/1.1 GET /js/bootstrap.js" - 200 OK
10.18.40.100:49461 - - [19/Jun/2014 17:03:45] "HTTP/1.1 GET /img/mini.png" - 200 OK
10.18.40.100:49460 - - [19/Jun/2014 17:03:45] "HTTP/1.1 GET /img/test_mini.png" - 200 OK
10.18.40.100:49460 - - [19/Jun/2014 17:03:45] "HTTP/1.1 GET /favicon.ico" - 200 OK
10.18.40.100:49460 - - [19/Jun/2014 17:03:52] "HTTP/1.1 GET /compeval" - 200 OK
10.18.40.100:49460 - - [19/Jun/2014 17:03:52] "HTTP/1.1 GET /css/bootstrap.css" - 200 OK
10.18.40.100:49458 - - [19/Jun/2014 17:03:52] "HTTP/1.1 GET /js/bootstrap.js" - 200 OK
10.18.40.100:49459 - - [19/Jun/2014 17:03:52] "HTTP/1.1 GET /js/jquery-1.8.2.min.js" - 200 OK
10.18.40.100:49461 - - [19/Jun/2014 17:03:52] "HTTP/1.1 GET /css/bootstrap-responsive.css" - 200 OK
10.18.40.100:49459 - - [19/Jun/2014 17:03:53] "HTTP/1.1 GET /img/mini.png" - 200 OK
10.18.40.100:49459 - - [19/Jun/2014 17:03:53] "HTTP/1.1 GET /img/glyphicons-halflings.png" - 200 OK
10.18.40.100:49459 - - [19/Jun/2014 17:03:53] "HTTP/1.1 GET /favicon.ico" - 200 OK
10.18.40.100:49459 - - [19/Jun/2014 17:03:58] "HTTP/1.1 GET /viewcompqlab" - 200 OK
10.18.40.100:49459 - - [19/Jun/2014 17:03:58] "HTTP/1.1 GET /css/bootstrap.css" - 200 OK
10.18.40.100:49461 - - [19/Jun/2014 17:03:58] "HTTP/1.1 GET /css/bootstrap-responsive.css" - 200 OK
10.18.40.100:49460 - - [19/Jun/2014 17:03:58] "HTTP/1.1 GET /js/bootstrap.js" - 200 OK
10.18.40.100:49458 - - [19/Jun/2014 17:03:58] "HTTP/1.1 GET /js/jquery-1.8.2.min.js" - 200 OK
10.18.40.100:49458 - - [19/Jun/2014 17:03:58] "HTTP/1.1 GET /img/mini.png" - 200 OK
10.18.40.100:49458 - - [19/Jun/2014 17:03:58] "HTTP/1.1 GET /favicon.ico" - 200 OK
10.18.40.100:49517 - - [19/Jun/2014 17:07:05] "HTTP/1.1 GET /compeval" - 200 OK
10.18.40.100:49517 - - [19/Jun/2014 17:07:05] "HTTP/1.1 GET /css/bootstrap.css" - 200 OK
10.18.40.100:49519 - - [19/Jun/2014 17:07:06] "HTTP/1.1 GET /js/jquery-1.8.2.min.js" - 200 OK
10.18.40.100:49518 - - [19/Jun/2014 17:07:06] "HTTP/1.1 GET /css/bootstrap-responsive.css" - 200 OK
10.18.40.100:49520 - - [19/Jun/2014 17:07:06] "HTTP/1.1 GET /js/bootstrap.js" - 200 OK
10.18.40.100:49520 - - [19/Jun/2014 17:07:06] "HTTP/1.1 GET /img/baidu_mini.png" - 200 OK
10.18.40.100:49518 - - [19/Jun/2014 17:07:06] "HTTP/1.1 GET /img/glyphicons-halflings.png" - 200 OK
10.18.40.100:49518 - - [19/Jun/2014 17:07:06] "HTTP/1.1 GET /favicon.ico" - 200 OK
显然,
.png
.ico
.css
.js
文件在我的服务器中是静态和全局有效的。所以,我的问题是: 如何避免这种情况并让浏览器缓存这些静态文件,除非按Ctrl+F5键

附录,如何在web.py中提供静态文件,在index.py文件中,代码如下:

"""register serve"""
urls=('/', 'index',
    '/favicon.ico','favicon',
    '/(js|css|img)/(.*)', 'static')


"""def class to support serve"""
class static:
    def GET(self, media, fn):
        rmod="r"
        if fn.endswith(".png"):
            rmod="rb"
        f = open(media+'/'+fn, rmod)
        try:
            stream = f.read()
            return stream
        except:
            f.close()
            return '404 Not Found'

class favicon:
    def GET(self):
        f = open("static/favicon.ico", 'rb')                                                                                                                                                                                                
        return f.read()  
然后在我的模板html文件中使用以下静态文件服务器:

<link href="css/bootstrap.css" rel="stylesheet" media="screen">
<link href="css/bootstrap-responsive.css" rel="stylesheet">
<script src="js/jquery-1.8.2.min.js"></script>
<script src="js/bootstrap.js"></script>    

静态文件不应通过
web.py
提供。相反,您应该将Web服务器配置为在向相应URL发出请求时为它们提供服务—一种常见的设置是提供一个
静态
目录,所有静态文件都位于该目录中


有关如何配置静态文件服务的详细信息将因您的Web服务器(apache、lighttpd等)和接口技术(fastCGI、mod_wsgi等)而异。您可以在

的部署部分找到常见配置否,web.py可以提供静态文件。这是一个简单的应用程序,所以我只使用web.py作为我的web服务器。关于如何请参考:@eason我从来没有说过它不能-只是它不应该。它不是一个合适的Web服务器,我认为它没有缓存管理等高级功能。如果它是一个如此简单的应用程序,那么您为什么还要担心缓存呢?