想問一下
C# MVC
正式環境的路徑為 localhost/folder/controller/action
測試環境的路徑為 localhost/controller/action
我要取得路徑去做ajax的路徑 我該如何取得用變數取得
正式環境需要取到 localhost/folder的部分 測試取到localhost就可以
目前正式環境多一層folder所以路徑都錯誤
有甚麼辦法可以用一個變數 兩個環境都共用嗎
目前是用
string FullUrls = Request.Url.AbsoluteUri.Substring(0, Request.Url.AbsoluteUri.LastIndexOf(Request.Url.AbsolutePath)) + Request.ApplicationPath;
if (FullUrls.Substring(FullUrls.Length - 1, 1) != "/")
{
FullUrls = FullUrls + "/";
}
===========================================================
$.ajax({
url: FullURL + "controller/GetDefaultData",
});
可以用發佈環境來處理
假設你的正式機環境,發佈為Release
那麼前端可以這樣
@{
string subpath = string.Empty;
#if RELEASE
subpath = "folder/";
#endif
}
你的部分就這樣取
...略
$.ajax({
url: FullURL + @subpath + "controller/GetDefaultData",
});
給你參考看看...
如果變數用設定的呢?
把變數設定成系統參數存到DB或設定到config裡,方便不同環境重新設定
或使用MakeRelativeUri來判斷?
https://learn.microsoft.com/zh-tw/dotnet/api/system.uri.makerelativeuri?view=net-5.0&WT.mc_id=DOP-MVP-37580
在chstml:
@Html.Hidden("yourPath", Url.Action(你的路徑), new { @id = "yourPath" })
在javascript:取這個HTML元素的value就有你想要的路徑了。