搜尋

首頁  >  問答  >  主體

透過偽裝遠端位置取得本地文件

<p>我正在編寫一個由C# webapi應用程式提供服務的Vue JS前端。 webapi被規定將映像保存到自己機器上的E:磁碟機資料夾,並提供UI消費的src連結。 </p> <p>一切都很好,但現在我想在本地運行時進行測試(並且我無法訪問E:驅動器)。問題是:我可以將圖像儲存到C:驅動器,但(由於明顯的原因),當我嘗試顯示它們時,UI瀏覽器會顯示「不允許載入本機資源」。 </p> <p>唯一的解決辦法是創建某種遠端託管嗎?還是可能在檔案實際儲存在本地時「偽造」一個遠端blob目標?就像Javascript的URL.createObjectURL方法一樣,但在webapi中? </p>
P粉549986089P粉549986089455 天前657

全部回覆(2)我來回復

  • P粉821808309

    P粉8218083092023-09-01 14:46:53

    如果您可以存取API的源代碼,您可能可以在本地構建和運行它,需要考慮到它可能需要一些環境變量,而這些變量您在本地機器上沒有存儲,並且需要一些配置才能在當前的生產環境之外運作。

    如果您能做到這一點,那麼您需要在前端API常數中更新API的網域(例如,將http://{APIDOMAIN}/your/route更新為http://localhost:5000/your/ route),以便在本地進行測試。

    回覆
    0
  • P粉494151941

    P粉4941519412023-09-01 14:01:57

    好的,NetMage的建議創建了一個虛擬的IIS目錄,起作用了!

    您可以為正在運行的IIS應用程式建立一個虛擬目錄,指向一個本機資料夾。

    • 開啟位於[solution folder]/.vs/[solution name]/config的applicationhost.config檔
    • 在設定檔中找到<sites>部分
    • 找到您的網路應用程式的網站(例如WebApi)
    • 新增一個新的虛擬目錄元素,指定遠端路徑並指向您的本機資料夾:
    <sites>
        <site name="App.WebApi" id="1">
            <application path="/" applicationPool="App.WebApi AppPool">
              <virtualDirectory path="/" physicalPath="C:\Repos\Code\App.WebApi" />
              <virtualDirectory path="/Media" physicalPath="C:\Media" /> <--这是我新增的
            </application>
            <bindings>
              <binding protocol="http" bindingInformation="*:8080:localhost" />
            </bindings>
        </site>
    <sites>
    • 現在,您可以將映像的src設定為"http://localhost:8080/Media/image.png",瀏覽器將認為它是遠端資源(不再抱怨)!

    回覆
    0
  • 取消回覆