С тех пор июль 2007 , gitignore действительно описывает шаблоны исключения.
, Если бы шаблон заканчивается наклонной чертой , он удален в целях следующего описания, но он только нашел бы соответствие с каталогом .
, Другими словами, нечто / будет соответствовать нечто каталога и путям под ним, но не будет соответствовать регулярному файлу или нечто символьной ссылки (это согласовывается с путем, как спецификация пути работает в целом в мерзавце).
Как проиллюстрированный этим потоком , тот шаблон не всегда выражался '/' для соответствия каталогу.
Вы можете использовать .NET для выполнения запроса HEAD, а затем посмотреть статус ответа.
Ваш код будет выглядеть примерно так (адаптировано из The Lowly HTTP HEAD Request ):
// create the request
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
// instruct the server to return headers only
request.Method = "HEAD";
// make the connection
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
// get the status code
HttpStatusCode status = response.StatusCode;
Вот список с подробным описанием кодов состояния , которые могут быть возвращены перечислителем StatusCode.
Можно ли предположить, что вы запускаете свое веб-приложение на том же веб-сервере, с которого получаете страницы справки? Если да, то вы можете использовать метод Server.MapPath для поиска пути к файлу на сервере в сочетании с методом File.Exists из пространства имен System.IO, чтобы подтвердить, что файл существует.
Отправить запрос HEAD для URL (вместо GET). Сервер вернет 404, если он не существует.
Взгляните на класс HttpWebResponse . Вы можете сделать что-то вроде этого:
string url = "http://example.com/help/" + LANG_ID + HELP_CONTEXT;
WebRequest request=WebRequest.Create(URL);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (response.StatusDescription=="OK")
{
// worked
}
Если вы хотите проверить статус документа на сервере:
function fetchStatus(address) {
var client = new XMLHttpRequest();
client.onreadystatechange = function() {
// in case of network errors this might not give reliable results
if(this.readyState == 4)
returnStatus(this.status);
}
client.open("HEAD", address);
client.send();
}
Спасибо.
РЕДАКТИРОВАТЬ: По-видимому, хороший способ сделать это - запрос HEAD.
Вы также можете создать серверное приложение, в котором будет храниться имя каждой доступной веб-страницы на сервере. После этого ваше клиентское приложение может запросить это приложение и ответить немного быстрее, чем запрос полной страницы, и без выдачи ошибки 404 каждый раз, когда файл не существует.