我想通了,我自己的答案。我決定在Controller中創建自己的相對根路徑變量,然後將值返回到View中。我在那個時候只需要使用Razor Markup插入變量並完成它!
我的環境:
控制器:
IHostingEnvironment
服務有兩個特別感興趣的特性:ContentRootPath
和WebRootPath
。對於我而言,我將使用ContentRootPath
,因爲我想訪問換句話說wwwroot
private readonly IHostingEnvironment _hostingEnvironment;
public HomeController(IHostingEnvironment hostingEnvironment)
{
_hostingEnvironment = hostingEnvironment;
}
確保將命名空間添加到文件的相對根路徑或!
using Microsoft.AspNetCore.Hosting;
我完成後,我需要的控制器內奠定了基礎工作,在同一文件中,我只想要一個特定的頁面,利用我的工作。爲了簡單起見,它將在示例代碼中表示爲Index
。
public IActionResult Index()
{
ViewBag.wwwRootPath = _hostingEnvironment.ContentRootPath;
return View();
}
查看:
好像在運行時或構建微軟的.NET Core僅轉換~/
到相對根目錄,如果它是一個元素中的src
屬性中。所以那些正在使用第三方庫或者需要指定非文件調用方式的情況下,這個解決方案就足夠了,直到它們添加了可擴展性。
我將使用問題中的示例作爲解決方案的示例。因此,如上所述,此代碼在應用程序中不起作用。
<img data-original="~/folder/file.png" />
解決辦法:
<img data-original="@ViewBag.wwwRootPath/folder/file.png" />
注:這也對JavaScript和CSS的偉大工程!只需將ViewBag.wwwRootPath
放在您想要的文檔中以保持一致性!