サイトの URL を返す小さなヘルパー関数を書きたいと思います。PHP と Codeigniter から来た私は、思い通りに動作させられないことに非常に腹を立てています。
これが私が試していることです:
@{
var urlHelper = new UrlHelper(Html.ViewContext.RequestContext);
var baseurl = urlHelper.Content("~");
}
<script>
function base_url(url) {
url = url || "";
return '@baseurl' + url;
}
</script>
アプリケーションのベース URL を返したいので、パスを気にせずに ajax 呼び出しを行うことができます。これが私がそれを使用する方法です:
// Development
base_url(); // http://localhost:50024
// Production
base_url("Custom/Path"); // http://site.com/Custom/Path
どうすればそのようなことができますか?
編集
ajax 呼び出しを行う js オブジェクトを抽象化したので、絶対パスが必要です。だから私が持っているとしましょう:
function MyController() {
// ... js code
return $resource('../MyController/:id');
}
// then
var my_ctrl = MyController();
my_ctrl.id = 1;
my_ctrl.get(); // GET: ../MyController/1
これは my route の場合に機能しますが、 is のhttp://localhost:8080/MyController/Edit
場合は失敗しますhttp://localhost:8080/MyController
。