CakePHP отключить маршрутизацию для определенных URL - PullRequest
0 голосов
/ 02 сентября 2011

У меня есть приложение CakePHP 1.3.10, которое я пытаюсь заставить сделать следующее:

Я хочу встроить mp3-файл в некоторые представления, используя флэш-аудиоплеер Google reader. Если я помещу mp3-файл в каталог webroot моего приложения, проблем нет. Однако я хотел бы, чтобы эти файлы находились в каталоге с именем AUDIO на том же уровне, что и каталог моего приложения. Как:

[public_html]
    [app]
    [cake]
    [AUDIO]
    ...

Проблема в том, что, если я помещаю туда свои mp3-файлы, когда я связываюсь с ними с моей точки зрения, Cake ищет контроллер audio , который не существует, а не просто связывает мой файл. Я считаю, что это как-то связано с маршрутизацией, поэтому мне было интересно, могу ли я отключить автоматическую маршрутизацию для определенной папки (в данном случае ** audio).

Я хочу сделать это таким образом, потому что в будущем мне, возможно, придется получать доступ к этим mp3 с других сайтов, поэтому я не хочу помещать их глубоко в систему каталогов тортов.

Большое спасибо заранее за любые советы!

Ответы [ 2 ]

1 голос
/ 03 сентября 2011

Файлы, которые должны напрямую обслуживаться веб-сервером без прохождения через Cake, должны быть помещены в каталог /app/webroot. Вы также можете создать такой каталог /webroot в плагинах (см. здесь ), который технически будет использовать маршрутизацию, но ведет себя так же, как и общий каталог webroot.

Если вы размещаете их где-либо еще, вы идете против конвенций Cake, которые я бы не рекомендовал. Не потому, что это невозможно, вы просто делаете свою жизнь сложнее, чем нужно. Вы можете отредактировать файл /app/webroot/.htaccess, чтобы переписать определенные URL-адреса, где бы вы ни хранили свои файлы, или использовать Media Views (как указано @Ivo), если вы действительно хотите это сделать.

1 голос
/ 03 сентября 2011

CakePHP не сможет автоматически находить файлы в папках, о которых он не знает.

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

Если вы хотите, чтобы их можно было свободно загружать, вы можете сделать это также с помощью MediaView или поместить их в пользовательскую папку внутри webroot. Однако вам нужно будет включить эту папку в пути и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...