string GetAssetFilePath(string cssFilePath, string url)
{
var queryStringPosition = url.IndexOf('?');
if (queryStringPosition > -1)
{
url = url.Substring(0, queryStringPosition);
}
if (Platform.Unix)
{
url = url.TrimStart('/');
}
var resolvedUrl = string.Empty;
var urlUri = new Uri(url, UriKind.RelativeOrAbsolute);
if (!urlUri.IsAbsoluteUri)
{
if (!url.StartsWith("/"))
{
var resolvedPath = Path.GetDirectoryName(cssFilePath);
if (Platform.Unix)
{
resolvedPath = resolvedPath.Replace("file:", "");
}
var outputUri = new Uri(resolvedPath + "/", UriKind.Absolute);
var resolvedSourcePath = new Uri(outputUri, urlUri);
resolvedUrl = resolvedSourcePath.LocalPath;
}
else
{
resolvedUrl = FileSystem.ResolveAppRelativePathToFileSystem(url);
}
return FileSystemResolver.Resolve(resolvedUrl);
}
return urlUri.LocalPath;
}