2013-03-11 2 views
1

초보자의 간단한 질문입니다. Aptana Studio 3를 사용하는 다른 사람이 W3C 유효성 검사를 사용할 때 오류 메시지를 받고 있습니까?Studio 3 오류 메시지 (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! 

빠른 편집자는 다른 편집자/IDE 사용자가 비슷한 것을 경험할 것을 제안합니다. HTML-Kit. W3C 유효성 검사 서비스가 브라우저에 의해 직접 제공되는 것처럼 사용자 - 에이전트 문자열을 기대하지만 아마 편집기/IDE가 아닌 것처럼 보입니다.

다른 인증 서비스를 사용하거나 브라우저를 통해 코드를 확인함으로써 문제를 해결할 방법이 있다는 것을 알고 있습니다. 그냥 내가 그걸 알릴 거라 생각 했어. 당신의 IDE에서

답변

0

브라우저는 웹 도구를 사용하여 웹에 게시되지 않은 페이지를 확인할 수 없습니다,

또한 W3C의 HTTP 표준을 준수하지 않는 것입니다. 그것을 사용하려면 작은 테스트 서버를 설정해야합니다.

먼저 다른 브라우저를 사용하십시오. 모든 브라우저는 사용자 에이전트 문자열을 전송해야하며 웹 사이트는 해당 문자열의 존재 이상으로 의존해서는 안되며 알려진 나쁜 브라우저를 블랙리스트에 올려야합니다.

IDE가 아닌 호환 테스트 개발자 도구 세트가있는 Chrome이나 Firefox와 같은 호환 브라우저에서 코드를 테스트해야합니다.

필요한 경우 코드를 확인하기 위해 W3C 웹 사이트에서 클라이언트 측 버전의 도구를 다운로드 할 수 있습니다. 모든 플랫폼에서 사용할 수있는 명령 줄 도구입니다. 이러한 도구의 라이브러리 버전을 사용하는 Firefox, Chrome 및 파생물에 사용할 수있는 확장 프로그램이 있습니다. (다시 말하지만, IDE 브라우저를 사용할 수 없습니다.)

2

Aptana Studio 프로젝트에 대한 수정 사항을 제출했습니다. 이 수정은 w3c로 전송 된 게시물에 http 사용자 에이전트를 추가하는 것과 관련이 있습니다.

w3c_validation.rb

아래의 텍스트로 w3c_validation.rb 파일에서 텍스트를 교체합니다. 예 경로 : C : \ 사용자 \ 사용자 \의 AppData \ 로컬 \ Aptana에 스튜디오 101 개 \ 1.cp \ 번들 \ 3 개 \ 구성 \ org.eclipse.osgi \ 번들 \ 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