2011-01-27 41 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