파일을 다운로드하고 simple.7z
스핑크스에 설치하여 여기에 설명한 문제를 재현하십시오. 복제하려면 다음을 실행하십시오.
make clean
make html
에 두 개의 기사가 sample/source
있으며 내용은 동일하지만 차이점은 제목입니다.
cd sample
ls source |grep "for-loop"
What does "_" in Python mean in a for-loop.rst
What does "_" in Python mean in a for-loop?.rst
하나는 포함 ?
하고 다른 하나는 포함 하지 않습니다 ?
. 실행 후 이상한 일이 발생했습니다 make html
.
make html
ls build/html|grep "for-loop"
What does "_" in Python mean in a for-loop.html
What does "_" in Python mean in a for-loop?.html
1 실행 :
왜 파이어 폭스로 다음 모두 표시 What does “_” in Python mean in a for-loop?
참고 :
"_"
에 combiled되었다 “_”
; 와 같이
포함되지 않은 제목 은에 추가 되었습니까? ?
What does "_" in Python mean in a for-loop.html
What does “_” in Python mean in a for-loop?
?
문제 2 : 첫 번째 제목을 클릭하려면 What does “_” in Python mean in a for-loop?
브라우저가 상태로 이동no url was not found on this server
두 번째 제목을 클릭하면 What does “_” in Python mean in a for-loop?
정상적으로 작동합니다.
내 문제에 대해 설명해주세요.
답변
문제 1 은 실제로 문제 가 아니며 Sphinx의 정상적인 동작입니다. 표시된 제목은 파일 이름이 아니라 ResT 문서의 최상위 제목입니다. 두 경우 모두 물음표로 끝납니다. 참고 항목 목차 > .. toctree :: > 항목 의 섹션 이 페이지에 있는 상태 :
toctree의 문서 제목은 참조 된 문서의 제목에서 자동으로 읽습니다.
확신이 필요한 경우 문서의 제목을 변경하고 HTML을 다시 작성하여보십시오.
문제 2 는 href
링크 에 urlencoded 물음표가 있기 때문에 발생합니다. URL에서 물음표는 쿼리 문자열 의 시작을 의미 합니다 .
액세스하려고 What does "_" in Python mean in a for-loop?.html
한다는 것은 What does "_" in Python mean in a for-loop
HTML 문서를 요청하고 .html
매개 변수를 제공 한다는 의미 입니다. 그리고 요청 된 문서는 존재하지 않기 때문에 찾을 수 없습니다.
브라우저의 주소 표시 줄에서 물음표를 urlencoded 형식으로 바꾸고 %3F
작동하는지 확인할 수 있습니다.
나는 스핑크스가 링크에서 문서 이름을 자동으로 urlencode href
( 실제로 버그로 간주 )하거나 ResT 문서에 대한 이름 제한을 명확하게 표현하는 문서 를 만드는 방법을 찾지 못했습니다 .
그러나 문장 부호가있는 파일 이름 을 지정하는 것이 종종 문제의 원인 이라는 사실을 알고 있습니다 . 덜 이국적인 문자로 문서의 이름을 바꾸는 것이 좋습니다 (슬러그 화). underscore_in_for_loop.rst
대신 ResT 문서의 이름을 지정 What does "_" in Python mean in a for-loop?.rst
하면 많은 시간과 두통이 줄어 듭니다 .
첫 번째 문제에서 볼 수 있듯이 문서 이름은 URL에만 사용되므로 문제가되지 않아야합니다.
답변
?
A는 와일드 카드 URL의 일부 단어 매칭은 따라서 특수 문자로 처리됩니다.
와일드 카드는 두 가지 유형의 조커와 함께 작동합니다.
? - any character (one and only one)
* - any characters (zero or more)
import urllib.parse
>>> urllib.parse.quote(<<url>>)
Python 3.x에서는 urllib.parse.quote를 가져와야합니다.
import urllib.parse
urllib.parse.quote(<<url>>)