我希望能够更改webpy静态目录,而无需在本地设置和运行nginx。现在看来,如果/ static
/存在,webpy只会创建一个静态目录。就我而言,我想使用/ foo / bar
/作为我的静态目录,但是找不到与配置此文件有关的任何信息(除了在本地运行apache或nginx之外)。
这仅供本地使用,不能用于生产。有任何想法吗?谢谢
如果您需要为同一路径使用不同的目录,则可以子类化web.httpserver.StaticMiddleware或编写自己的中间件(通过修改PATH_INFO欺骗StaticApp):
import web
import os
import urllib
import posixpath
urls = ("/.*", "hello")
app = web.application(urls, globals())
class hello:
def GET(self):
return 'Hello, world!'
class StaticMiddleware:
"""WSGI middleware for serving static files."""
def __init__(self, app, prefix='/static/', root_path='/foo/bar/'):
self.app = app
self.prefix = prefix
self.root_path = root_path
def __call__(self, environ, start_response):
path = environ.get('PATH_INFO', '')
path = self.normpath(path)
if path.startswith(self.prefix):
environ["PATH_INFO"] = os.path.join(self.root_path, web.lstrips(path, self.prefix))
return web.httpserver.StaticApp(environ, start_response)
else:
return self.app(environ, start_response)
def normpath(self, path):
path2 = posixpath.normpath(urllib.unquote(path))
if path.endswith("/"):
path2 += "/"
return path2
if __name__ == "__main__":
wsgifunc = app.wsgifunc()
wsgifunc = StaticMiddleware(wsgifunc)
wsgifunc = web.httpserver.LogMiddleware(wsgifunc)
server = web.httpserver.WSGIServer(("0.0.0.0", 8080), wsgifunc)
print "http://%s:%d/" % ("0.0.0.0", 8080)
try:
server.start()
except KeyboardInterrupt:
server.stop()
或者,您可以创建名为“ static”的符号链接,并将其指向另一个目录。
目前我正在使用 硒-3.3.0 火狐-52.2.0 壁虎驱动器-13
问题内容: 我在具有基本HTTP服务器(没有Express或Connect或类似的东西)的Node服务器上使用Socket.IO。默认情况下,Socket.IO将客户端文件提供给 /socket.io/socket.io.js 我希望能够将该基本路径更改为其他内容,例如 /foo/bar/socket.io/socket.io.js 是否有任何内置方法来执行此操作,或者是否有任何不更改Socket
我有相当多的麻烦指向SBT中Scala源文件的自定义目录。 我希望sbt从给定的目录编译scala文件,而不是常规的目录。 我尝试了定义. sbt和. scala项目文件,设置,(和s中的. scala文件)。我还玩弄了从系统绝对路径到相对路径的一切,但似乎没有什么工作。它无法找到指定目录下的任何. scala文件。 正确的处理方法是什么?
问题内容: 在泊坞窗中,我想这样做: 但是,因为没有cd命令,所以每次都必须传递完整路径(使XYZ / fullpath)。有什么好的解决方案吗? 问题答案: 您可以运行脚本,也可以运行更复杂的参数。这是我先前下载的Dockerfile中的示例: 由于使用了“ &&”,如果所有先前的命令都成功,它将仅到达最终的“ pip install”命令。 实际上,由于每个RUN都会创建一个新的提交和AUFS
问题内容: 我正在尝试: 但是它继续提供我static_path中拥有的服务(如上所述,我在两个单独的路径中有两个不同的,但是我希望能够覆盖)。 问题答案: 从应用程序设置中删除。 然后将您的处理程序设置为:
我有一个学校作业,要做一个程序,结果要么正确,要么错误。这关系到一年是否是闰年。目前的问题是,我使用的是公共静态布尔值,而不是公共布尔值。这是我的代码: 现在int年是2000年,但是规则是这样的:闰年是一年,可以除以4,除非这一年是一个新世纪的开始(1700, 1800, 1900.....)。所以即使你可以把1900除以4,你也不能把它除以400,所以这是错误的。所以再一次问一个问题:我需要做
我有一个私有int数组,我需要以某种方式找到长度,但在静态类下无法做到这一点。我必须保持类的静态,是否可以添加其他方法来将a.length更改为其他方法? 该问题是由a.length引起的。
您好,我正在使用Laravel5.2版本。我通过composer安装了laravel项目。之后,我使用命令“phpartisanmake:auth”创建auth。创建身份验证路由后生成,例如“http://localhost:8000/login“.现在我不想要此路线,我想设置不同的路线,例如”http://localhost:8000/super/admin“那么,我该如何更改”http://l