2011-01-27 102 views
15

我试图找到一种工具,它允许非程序员在活动服务器上测试文件。拦截并使用http请求中的本地文件

例如,他们可以修改计算机上的图像,重新加载网页,然后立即查看其工作结果。

我试过为此找到一个工具,因为它似乎很明显,有人一定会想到它,但我看到很多软件不太适合。一个名为Fiddler的工具可以做到这一点(他们称之为自动回复),但它只是Windows。我可以改变主机文件重定向到nginx的本地实例或某事,但这似乎很难维护,当我真正想要的是一个简单的工具,将这样的事情...

http://someserver.com/css/(。*) - >/home/user/localcss/$ 1

有没有人有任何建议?

编辑:重定向澄清

+0

提琴手特定版本的同一个问题https://stackoverflow.com/q/17033990/10245 – 2017-09-08 16:25:15

回答

-10

其实你不能这样做,因为浏览器不允许通过http文件://访问本地计算机上的文件(只是觉得它时刻...例如,如果恶意网页从您的计算机加载一些私人文件,会发生什么情况?)。
某些浏览器(例如Safari)允许文件覆盖文件://访问其他文件://文件,其他文件不会,但浏览器不允许http://访问file://。

Firefox有一个名为的“签名脚本”,这是使用可信证书进行数字签名的脚本。他们可以要求用户授予他们访问本地硬盘驱动器的权限。看看这个:http://www.mozilla.org/projects/security/components/signed-scripts.html

你的意思是Fiddler Web Proxy(www.fiddler2.com)?有一个名为Charles Web Proxy的基于Java的商业替代品可能适合您的需求。

+0

我不想在浏览器中使用file:// urls,我正在寻找某种代理,这将允许我用本地版本静静地替换文件。为了清晰,我修改了我的问题。不幸的是,查尔斯成本高昂。 – max 2011-01-27 20:31:19

+0

我误解了你的问题,对不起。无论如何,你可以安装LAMP,WAMP或MAMP之类的东西,把这些文件在htdocs目录下进行测试,然后将它们称为http:// localhost/ – MrMagic 2011-01-27 20:38:39

1

这已经有一段时间,因为我问这个问题,我有一个不建议一个很好的技术。

PAC files受所有主流浏览器支持,并允许您编写脚本,可以将任何单个请求重定向到代理服务器。例如,代理服务器可以提供PAC文件,让PAC文件将白名单URL重定向到代理服务器,并返回这些文件的本地版本。它甚至可以支持HTTPS。

小心一个问题 - Internet Explorer。它有助于不正确地“缓存”该脚本的结果,以便如果代理域中的一个URL,则该域中的所有URL都将被代理。然而,This feature can be disabled

2

最大的PAC解决方案是一个生命的保护,所以我提供更多的细节(还不能达到投)

要使用的,比方说,css文件的本地版本,创建一个文件“代理。pac',其中包含此功能:

function FindProxyForURL(url, host) 
{ 
    // use regex to match requests ending with '.css' 
    // and redirect them to localhost 
    var regexpr = /.**\.css/; 
    if(regexpr.test(url)) 
    { 
     return "PROXY localhost"; 
    } 

    // Or else connect directly: 
    return "DIRECT"; 
} 

保存'proxy.pac'并将浏览器指向此文件。在Firefox中,这是在选项>高级>连接>设置>自动代理配置URL

为了最佳实践,还要添加一个MIME类型到您的web服务器:map'.pac'键入'application/x-ns-proxy -autoconfig”。

现在所有对.css文件的请求都将被路由到本地主机。不要忘记确保代理服务器上的文件结构相同。

在CSS的情况下,通过使用本地chrome覆盖CSS可能会更容易一些。例如在Firefox中,chrome/userContent.css。见http://kb.mozillazine.org/UserContent.css