2013-03-11 3 views
1

Просто быстрый вопрос от новичка. Кто-нибудь еще, используя Aptana Studio 3, получал сообщения об ошибках при проверке W3C?Студия 3 сообщение об ошибке re W3C валидация

Status: 403 Forbidden Vary: Referer Content-type: text/html 

Markup Validation Service 

Sorry! This document can not be checked. 
No User-Agent header found! 

Быстрый Google предполагает, что другие пользователи/пользователи IDE испытывают нечто подобное, например. HTML-Kit. Похоже, что служба проверки W3C ожидает строку пользовательского агента, которая будет предоставляться напрямую браузером, но, по-видимому, не является редактором/IDE?

Я знаю, что существуют способы решения проблемы с помощью другой службы проверки или проверки кода через браузер. Просто подумал, что я его подниму.

ответ

0

Ваш браузер в вашем IDE не является совместимым со стандартами W3C HTTP

Кроме того, вы не можете проверить страницы, которые не были опубликованы в Интернете с помощью веб-инструмента. Для его использования необходимо настроить небольшой тестовый сервер.

Во-первых, используйте другой браузер. Все браузеры должны отправлять строку user-agent, ни один веб-сайт не должен зависеть от чего-либо большего, чем наличие этой строки, или от черных списков известных плохих браузеров.

Вы действительно должны протестировать свой код в совместимом браузере, таком как Chrome или Firefox, с помощью набора инструментов тестирования тестирования соответствия, а не из вашей IDE.

Если необходимо, вы можете вместо этого загрузить версию веб-сайта на стороне клиента с веб-сайта W3C, чтобы проверить свой код. Это инструмент командной строки, доступный со всех платформ. Существуют расширения для Firefox, Chrome и производных, которые используют библиотечную версию этих инструментов. (Опять же, вы не можете использовать свой IDE-браузер.)

2

Я представил исправление для проекта Aptana Studio для этого. Это исправление включает добавление HTTP-агента в сообщение, отправленное на w3c.

w3c_validation.rb

Заменить текст в файле w3c_validation.rb с текстом ниже. пример пути: C: \ Users \ пользователь \ AppData \ Local \ Aptana Studio 3 \ конфигурации \ \ org.eclipse.osgi расслоения \ 101 \ \ 1.CP расслоений \ html.ruble \ команды \ w3c_validation.rb

require 'ruble' 

command t(:validate_syntax) do |cmd| 
    cmd.key_binding = 'CONTROL+M2+V' 
    cmd.scope = 'text.html' 
    cmd.output = :show_as_html 
    cmd.input = :document 
    cmd.invoke do |context| 
    $KCODE = 'U' 
    page = $stdin.read 
    page.gsub!(/<\?(php|=).*?\?>|<%.*?%>/m, '') 

    w3c_url = 'http://validator.w3.org/check' 

    require 'net/http' 
    require 'uri' 

#fix for w3c blocking http requests without a user-agent 
#changed the way the http post is sent to w3c so that it includes a user-agent 

uri = URI(w3c_url) 
req = Net::HTTP::Post.new(uri.path) 
req.set_form_data({'ss' => "1", 'fragment' => page}) 
req['User-Agent'] = 'Aptana' 

response = Net::HTTP.start(uri.host, uri.port) do |http| 
    http.request(req) 
end 
    status = response['x-w3c-validator-status'] 

    content = response.body 
    content = content.gsub(/<\/title>/, '\&<base href="http://validator.w3.org/">') 
    # content.gsub!(/Line (\d+),? Column (\d+)/i) do 
    # # FIXME These links won't work for us! 
    # "<a href='txmt://open?line=#\$1&column=#{\$2.to_i + 1}'>#\$&</a>" 
    # end 
    content 
    end 
end