首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

如何在 DNN 模組中引用資源檔案(圖片/JS/CSS):ModulePath 與 ResolveUrl 完整指南

     編輯:關於ASP.NET

DNN 永遠運行於網站根目錄(Default.aspx 載入皮膚與模組)。所有資源引用必須從根目錄起算。

問題場景

模組安裝於 DesktopModules/MyModuleName,View.ascx 需引用同目錄下 CompanyLogo.gif。

  • ./CompanyLogo.gif ❌ 相對路徑基於根目錄,找不到檔案。
  • DotNetNuke_2/DesktopModules/MyModuleName/CompanyLogo.gif ✅ 但虛擬目錄名稱不固定,不可攜帶。

解決方案一:ModulePath 屬性

PortalModuleBase 基類提供 ModulePath 動態生成模組相對路徑:

<img src="<%=ModulePath%>CompanyLogo.gif" alt="youralt" />

ModulePath 值為 /DotNetNuke_2/DesktopModules/MyModuleName/,自動適應虛擬目錄變化。

解決方案二:ResolveUrl 方法

DotNetNuke.Common.Globals.ResolveUrl 將 ~ 解析為應用程式根路徑:

Page.ResolveUrl("~/DesktopModules/MyModuleName/CompanyLogo.gif")

ApplicationPath 為 /DotNetNuke_2,~ 自動替換為該路徑。

總結

  • ModulePath:專為模組資源設計,最簡潔。
  • ResolveUrl:通用於任何資源,支援 ~ 語法,彈性更高。

善用這兩招,徹底解決模組資源引用遷移痛點。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved