Чому файл HTML, перетворений з першого файлу, що містить знак запитання, не може відображатися в браузері, коли натискати каталог?


14

Завантажте файл 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

будь ласка, перегляньте плитку після запуску <code> make html </code> Випуск 1:
Чому Firefox показує все тоді як What does “_” in Python mean in a for-loop? Примітка: "_"було об’єднано “_”;
Заголовок, який не містить ?такого, у який 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

на цьому сервері не було знайдено жодного URL-адреси, коли натиснути перший заголовок Щоб натиснути на другу назву What does “_” in Python mean in a for-loop?, це працює чудово. добре працює, коли натиснути другий заголовок

Будь ласка, дайте пояснення щодо мого питання.


1
Будь ласка, покажіть свій реструктуризований текст, з якого Sphinx створив цей HTML.
Стів Пірсі

print(“Hello”)??? Потрібно вимкнути "розумні" цитати.
kthy

Відповіді:


6

Випуск 1 насправді не є проблемою, це нормальна поведінка Сфінкса: відображається заголовок - це не ім'я файлу, а заголовок верхнього рівня документа ResT, який в обох випадках закінчується знаком питання. Дивіться Зміст > .. toctree :: > Розділ про публікації на цій сторінці, де зазначено:

Назви документів у документі автоматично зчитуються з назви документа, що посилається.

Якщо вам потрібно переконатися, просто змініть заголовок будь-якого документа, відновіть HTML і перегляньте.


Випуск 2 викликаний наявністю знаку питання, який не кодується урленом, у hrefпосиланні. У URL-адресі знак питання означає початок рядка запиту .

Це намагається отримати доступ What does "_" in Python mean in a for-loop?.html, означає запросити What does "_" in Python mean in a for-loopHTML-документ, дати йому .htmlпараметр. І очевидно, що запитуваний документ не знайдено, оскільки його не існує.

В адресному рядку вашого веб-переглядача ви можете замінити знак питання на його укодовану форму %3F, і спостерігати, як він працює.

Я не знайшов ніякого способу зробити сфінкс автоматично іменами урленкоду документів у посиланнях href( це насправді вважається помилкою ) або будь-якому документі, чітко виражає обмеження іменування ResT-документів.

Але я знаю з досвіду, що найменування файлу з пунктуацією часто є джерелом проблем . Я б радив вам перейменувати ваш документ менш екзотичними символами (слугувати їх). Іменування вашого ResT документа underscore_in_for_loop.rstзамість What does "_" in Python mean in a for-loop?.rst, заощадить вам багато часу та головних болів.

І пам’ятайте, що це не повинно бути проблемою, оскільки, як ми бачили в першому номері, назва документа використовується лише для URL-адреси.


4

?являє собою підстановку для відповідності частинних слів у URL-адресі, а отже, буде розглянуто як особливий символ.

wild карти працюють з двома типами жартівників:

  ? - any character  (one and only one)
  * - any characters (zero or more)

Для цього вам потрібно кодувати URL-адресу

import urllib.parse
>>> urllib.parse.quote(<<url>>)

У Python 3.x вам потрібно імпортувати urllib.parse.quote:

import urllib.parse
urllib.parse.quote(<<url>>)

2
wildcard працює з двома джокерами
Sreeram Nair

Я думаю, що цей ?файл трактується як майна, і тому його не перетворюють %3fна URL-адресу.
Sreeram Nair

5
Тоді це помилка для пітона-сфінкса.
скрап

Яке відношення між пов'язаними док-адресом до сфінкса ...?
Триф
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.