2016-11-22 50 views
1

我有兩個共享一些靜態資產(圖像,CSS,字體等)的asp.net核心應用程序,並作爲臨時解決方案保留兩個項目的副本。我想簡化它,顯然只保留資產的一個副本,並使其可供兩個項目訪問。在asp.net核心應用程序(或通過Azure CDN?)共享靜態資產

我在想這個問題的解決方案,並想知道是否可以在解決方案中創建一個新項目,並以某種方式將內容複製到Azure CDN上,例如在git commit後再引用CDN URL的源代碼。很顯然,我不想手動管理這些內容,並且每次更改我的CSS或添加圖像時都必須手動將文件上傳到CDN /存儲端點。

但是,我不明白這是否可能,如果是的話如何設置? 應用程序本身託管在Azure中,因此這需要作爲視覺工作室修補程序(例如舊的「添加鏈接」似乎不再可用?)或Azure中實現。

有關如何實現此目的的任何建議將受到歡迎。

感謝

回答

0

最簡單的方法是將您的靜態內容發佈到一個存儲帳戶(斑點),然後將CDN連接到存儲賬戶;然後您可以更改項目中的任何URL引用以使用CDN端點,而不僅僅是正常的相對路由。

想要自動化的位在構建/發佈時間 - 您可以通過VSTS添加命令任務來使用AZCOPY將所有靜態文件放在存儲帳戶的正確位置;你可以在你的後期構建任務中做到這一點,如果你沒有使用CI/CD進程進行開發/測試。

如果需要清除的CDN,你可以做到這一點通過REST API調用,就像

POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/endpoints/{endpointName}/purge?api-version=2016-10-02 

CDN docs here

它是一個很好的途徑往下走,沒有足夠多的人意識到多麼容易CDN在天藍色的是多少,它提高了你的網站的快感的感覺。

[編輯] - 忘了AzureFileCopy VSTS任務,請參閱GitHub project

0

由拉塞爾·揚肯定會工作提出的解決方案,但也許是一個更簡單的方法是使用自定義起源於CDN和點源URL到靜態資產的原始位置。這樣就不需要管理兩個地點的資產。

相關問題