我用webpy和livereload一起使用,效果很好,我可以对应用程序模块进行更改,并按预期重新加载浏览器页面。但是livereload找不到我的JS文件,我得到了404,当我运行没有livereload的webpy应用程序时,文件被找到了,我没有得到404
from livereload import Server
import web
from nestpas.views import *
from nestpas.urls import *
import sys
logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
# web.config.debug = False
web.ctx.debug = False
app = web.application(urls, globals(), autoreload=False)
webapp = app.wsgifunc()
# Setup session storage
db = web.database(dbn='sqlite', db='dev.db')
store = web.session.DBStore(db, 'sessions')
session = web.session.Session(app, store,
initializer={'login': 0}
)
if __name__ == '__main__':
# app.run()
server = Server(webapp)
server.watch('static/', 'templates/', 'nestpas/')
server.serve(port=8080, host='localhost')
JS文件存储在webpy描述的静态文件夹中,但是我在我的终端中看到了这个错误
^{pr2}$如果我改变应用程序副本要使用的文件应用程序运行()JS文件按预期提供,而不是livereload
127.0.0.1:55534 - - [12/Feb/2017 09:16:15] "HTTP/1.1 GET /static/js/require.js" - 200
更新
添加URL
urls = (
'/', 'Index',
'/blog/(.+)/', 'Blog',
'/login/', 'Login',
'/logout/', 'Logout',
'/admin/', 'Admin',
'/media/', 'Media',
'/entry/(.+)?', 'Entry'
)
web.py
有一个快捷方式:如果URL路径以/static/
开头,则直接加载文件并将其返回给请求者。(你已经知道了。)但是,除非网页.py作为一个简单的HTTPServer运行。当您通过livereload加载它时,您使用的是tornado web服务器,因此不会加载此功能。在
不用担心:你可以加进去。在
web/httpserver.py
在StaticMiddleware
中定义了此功能,因此您可以将其添加到应用程序链中:(我没有做过广泛的测试,但它似乎工作得很好。)
相关问题 更多 >
编程相关推荐