mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-15 19:54:57 +08:00
Improving absolute urls construction
This commit is contained in:
@@ -7,6 +7,7 @@ using System.Xml.Linq;
|
||||
using JetBrains.Annotations;
|
||||
using Orchard.ContentManagement;
|
||||
using Orchard.Core.Feeds.Models;
|
||||
using Orchard.Mvc.Extensions;
|
||||
using Orchard.Services;
|
||||
using Orchard.Utility.Extensions;
|
||||
|
||||
@@ -45,7 +46,7 @@ namespace Orchard.Core.Feeds.StandardBuilders {
|
||||
|
||||
context.Response.Contextualize(requestContext => {
|
||||
var urlHelper = new UrlHelper(requestContext, _routes);
|
||||
var uriBuilder = new UriBuilder(urlHelper.RequestContext.HttpContext.Request.ToRootUrlString()) { Path = urlHelper.RouteUrl(inspector.Link) };
|
||||
var uriBuilder = new UriBuilder(urlHelper.MakeAbsolute("/")) { Path = urlHelper.RouteUrl(inspector.Link) };
|
||||
link.Add(uriBuilder.Uri.OriginalString);
|
||||
guid.Add(uriBuilder.Uri.OriginalString);
|
||||
});
|
||||
|
@@ -7,6 +7,7 @@ using Orchard.ContentManagement;
|
||||
using Orchard.Core.Common.Models;
|
||||
using Orchard.Core.Feeds.Models;
|
||||
using Orchard.Core.Feeds.StandardBuilders;
|
||||
using Orchard.Mvc.Extensions;
|
||||
using Orchard.Services;
|
||||
using Orchard.Utility.Extensions;
|
||||
|
||||
@@ -62,7 +63,7 @@ namespace Orchard.Core.Feeds.StandardQueries {
|
||||
|
||||
context.Response.Contextualize(requestContext => {
|
||||
var urlHelper = new UrlHelper(requestContext);
|
||||
var uriBuilder = new UriBuilder(urlHelper.RequestContext.HttpContext.Request.ToRootUrlString()) { Path = urlHelper.RouteUrl(inspector.Link) };
|
||||
var uriBuilder = new UriBuilder(urlHelper.MakeAbsolute("/")) { Path = urlHelper.RouteUrl(inspector.Link) };
|
||||
link.Add(uriBuilder.Uri.OriginalString);
|
||||
});
|
||||
}
|
||||
@@ -71,7 +72,7 @@ namespace Orchard.Core.Feeds.StandardQueries {
|
||||
context.Builder.AddProperty(context, null, "description", inspector.Description);
|
||||
context.Response.Contextualize(requestContext => {
|
||||
var urlHelper = new UrlHelper(requestContext);
|
||||
context.Builder.AddProperty(context, null, "link", urlHelper.RouteUrl(inspector.Link));
|
||||
context.Builder.AddProperty(context, null, "link",urlHelper.MakeAbsolute(urlHelper.RouteUrl(inspector.Link)));
|
||||
});
|
||||
}
|
||||
|
||||
|
@@ -1,5 +1,6 @@
|
||||
@model Orchard.Autoroute.ViewModels.AutoroutePartEditViewModel
|
||||
@using Orchard.Autoroute
|
||||
@using Orchard.Mvc.Extensions
|
||||
@using Orchard.Utility.Extensions;
|
||||
@using Orchard.Environment.Configuration
|
||||
|
||||
@@ -20,11 +21,11 @@
|
||||
<fieldset class="permalink">
|
||||
<label>@T("Permalink")</label>
|
||||
@if (Model.Settings.AllowCustomPattern) {
|
||||
<span>@ViewContext.RequestContext.HttpContext.Request.ToApplicationRootUrlString()/@urlPrefix</span>
|
||||
<span>@Url.MakeAbsolute("/")@urlPrefix</span>
|
||||
<span>@Html.TextBoxFor(m => m.CurrentUrl, new {@class = "text"})</span>
|
||||
}
|
||||
else {
|
||||
<span>@ViewContext.RequestContext.HttpContext.Request.ToApplicationRootUrlString()/@urlPrefix</span>
|
||||
<span>@Url.MakeAbsolute("/")@urlPrefix</span>
|
||||
}
|
||||
|
||||
<span class="hint">@T("Save the current item and leave the input empty to have it automatically generated using the pattern {0} e.g., {1}", defaultPattern.Name, defaultPattern.Description)</span>
|
||||
|
@@ -9,6 +9,7 @@ using System.Text;
|
||||
using System.Web;
|
||||
using System.Web.Mvc;
|
||||
using System.Web.Routing;
|
||||
using Orchard.Mvc.Extensions;
|
||||
using Orchard.OutputCache.Models;
|
||||
using Orchard.OutputCache.Services;
|
||||
using Orchard.Caching;
|
||||
@@ -421,7 +422,7 @@ namespace Orchard.OutputCache.Filters {
|
||||
var redirectUrl = ((RedirectResult)(filterContext.Result)).Url ;
|
||||
|
||||
if (!VirtualPathUtility.IsAbsolute(redirectUrl)) {
|
||||
var applicationRoot = filterContext.HttpContext.Request.ToRootUrlString();
|
||||
var applicationRoot = new UrlHelper(filterContext.HttpContext.Request.RequestContext).MakeAbsolute("/");
|
||||
if (redirectUrl.StartsWith(applicationRoot, StringComparison.OrdinalIgnoreCase)) {
|
||||
redirectUrl = redirectUrl.Substring(applicationRoot.Length);
|
||||
}
|
||||
@@ -515,7 +516,7 @@ namespace Orchard.OutputCache.Filters {
|
||||
private string ComputeCacheKey(ControllerContext controllerContext, IEnumerable<KeyValuePair<string, object>> parameters) {
|
||||
var url = controllerContext.HttpContext.Request.RawUrl;
|
||||
if (!VirtualPathUtility.IsAbsolute(url)) {
|
||||
var applicationRoot = controllerContext.HttpContext.Request.ToRootUrlString();
|
||||
var applicationRoot = new UrlHelper(controllerContext.HttpContext.Request.RequestContext).MakeAbsolute("/");
|
||||
if (url.StartsWith(applicationRoot, StringComparison.OrdinalIgnoreCase)) {
|
||||
url = url.Substring(applicationRoot.Length);
|
||||
}
|
||||
|
@@ -7,6 +7,7 @@ using Orchard.ContentManagement;
|
||||
using Orchard.Core.Feeds;
|
||||
using Orchard.Core.Feeds.Models;
|
||||
using Orchard.Core.Feeds.StandardBuilders;
|
||||
using Orchard.Mvc.Extensions;
|
||||
using Orchard.Projections.Models;
|
||||
using Orchard.Projections.Services;
|
||||
using Orchard.Services;
|
||||
@@ -63,7 +64,7 @@ namespace Orchard.Projections.StandardQueries {
|
||||
|
||||
context.Response.Contextualize(requestContext => {
|
||||
var urlHelper = new UrlHelper(requestContext);
|
||||
var uriBuilder = new UriBuilder(urlHelper.RequestContext.HttpContext.Request.ToRootUrlString()) { Path = urlHelper.RouteUrl(inspector.Link) };
|
||||
var uriBuilder = new UriBuilder(urlHelper.MakeAbsolute("/")) { Path = urlHelper.RouteUrl(inspector.Link) };
|
||||
link.Add(uriBuilder.Uri.OriginalString);
|
||||
});
|
||||
}
|
||||
|
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Web.Mvc;
|
||||
using System.Xml.Linq;
|
||||
using Orchard.Mvc.Extensions;
|
||||
using Orchard.Taxonomies.Models;
|
||||
using Orchard.Taxonomies.Services;
|
||||
using JetBrains.Annotations;
|
||||
@@ -55,7 +56,7 @@ namespace Orchard.Taxonomies.StandardQueries {
|
||||
|
||||
context.Response.Contextualize(requestContext => {
|
||||
var urlHelper = new UrlHelper(requestContext);
|
||||
var uriBuilder = new UriBuilder(urlHelper.RequestContext.HttpContext.Request.ToRootUrlString()) { Path = urlHelper.RouteUrl(inspector.Link) };
|
||||
var uriBuilder = new UriBuilder(urlHelper.MakeAbsolute("/")) { Path = urlHelper.RouteUrl(inspector.Link) };
|
||||
link.Add(uriBuilder.Uri.OriginalString);
|
||||
});
|
||||
}
|
||||
|
@@ -30,7 +30,12 @@ namespace Orchard.Mvc.Extensions {
|
||||
}
|
||||
|
||||
if(String.IsNullOrEmpty(baseUrl)) {
|
||||
baseUrl = urlHelper.RequestContext.HttpContext.Request.ToApplicationRootUrlString();
|
||||
var workContextAccessor = urlHelper.RequestContext.GetWorkContext();
|
||||
baseUrl = workContextAccessor.CurrentSite.BaseUrl;
|
||||
|
||||
if (String.IsNullOrWhiteSpace(baseUrl)) {
|
||||
baseUrl = urlHelper.RequestContext.HttpContext.Request.ToApplicationRootUrlString();
|
||||
}
|
||||
}
|
||||
|
||||
if(String.IsNullOrEmpty(url)) {
|
||||
|
Reference in New Issue
Block a user