Адрес страницы должен быть http://1.2.3.4/a/page_first/
(с косой чертой в конце).
ДОБАВЛЕНО:
Вам не кажется, понимают относительные адреса, поэтому позвольте мне объяснить. Когда вы ссылаетесь на изображение, подобное этому <img src="my_image.png"/>
, URL-адрес изображения в теге не содержит информации о хосте/пути, поэтому путь берется из адреса страницы HTML, относящейся к изображению. Поскольку путь - это все до последней косой черты, в вашем случае это http://1.2.3.4/a/
. Таким образом, полный URL-адрес изображения, который будет запрашиваться браузером, будет http://1.2.3.4/a/my_image.png
.
Вы хотите, чтобы это было http://1.2.3.4/a/page_first/my_image.png
, поэтому часть пути HTML-страницы должна быть /a/page_first/
.
Обратите внимание, что браузер не предполагает, что page_first
является «каталогом» только потому, что он не имеет «расширения» и автоматически не добавляет конечную косую черту. Когда вы обращаетесь к серверу, публикующему статические dirs и файлы, и указываете имя каталога для пути и опускаете конечную косую черту (например, http://www.example.com/some/path/here
), сервер может определить, что вы действительно запрашиваете каталог, и он добавляет косую черту (и обычно также имя файла по умолчанию/индекс) для вас. Обычно это не так с динамическими веб-сайтами, где запрограммированы URL-адреса.
Так что в основном вам нужно явно включить конечную косую черту в пути страницы: dispatcher.connect('page','/a/:number_of_page/', controller=self, action='page_method')
и всегда ссылаться на нее с завершающим косой чертой (http://1.2.3.4/a/page_first/
), в противном случае маршрут не будет согласован.
В качестве примечания, как правило, вы помещаете изображения и другие статические файлы в выделенный каталог и обслуживаете их либо с помощью статического инструмента, либо с сайта с высокой нагрузкой с выделенным сервером CherryPy.
Я не понимаю вас полностью ... Итак, есть картограф: 'dispatcher.connect ('page', '/ a /: number_of_page', controller = self, action = 'page_method')' и 'dispatcher.connect ('image', '/ a /: number_of_page/my_image.png', controller = self, action = 'image_method') '. Может быть, проблема здесь ... –
@Dmitriy_Cert добавил к моему ответу – jwalker
jwalker, это очень подробный ответ. Оно работает. Большое спасибо! Я начинаю, и я никогда не догадаюсь. –