У меня есть приложение Slim со следующей структурой
project_root/
index.php
Slim
Client
index.html
scripts
styles
partials
Мне нужно сделать следующее:
- Приложение Slim/PHP должно действовать как
rest server
, которое отвечает вjson
для URL-адресов, начинающихся с/apis
. - Другие URL-адреса должны быть перенаправлены на
Client
и ресурсы, а именно. стили, скрипты должны обслуживаться статически. - Клиентское приложение является независимым приложением. (в данном случае угловое приложение)
Содержимое index.php похоже на
$app = new \Slim\Slim();
$app->add(new \Slim\Middleware\ContentTypes());
// Routes
$app->get('/apis/register',function(){
echo "apis/register";
});
Следующий маршрут отображает index.html
страницу. начальная страница моего углового приложения. Но стили и сценарии не обслуживаются.
Я получаю 404 Not Found для стилей и скриптов.
$app->get('/:route',function($route) use ($app) {
$app->config('templates.path', './Client/');
$app->render('index.html');
})->conditions(array("route" => "(index|style)"));
Как разместить styles
и scripts
, которые используются клиентским приложением?
Может быть через какой-то тонкий маршрут (предпочтительно) или через конфигурацию apache
В rails мы можем написать следующие маршруты.
match "/styles" => redirect("/")
match "/partials" => redirect("/")
ИЗМЕНИТЬ:
Похоже, что /*
еще не поддерживается в Slim или отсутствует в документации.
Как и в node.js, мы делаем,
{
path: '/*',
httpMethod: 'GET',
middleware: [function(req, res) {
res.render('index');
}]
}