Имам приложение 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
, които се използват от клиентско приложение?
Може да бъде чрез някакъв Slim маршрут (за предпочитане) или чрез конфигурация на apache
Врелси можем да напишем следните маршрути.
match "/styles" => redirect("/")
match "/partials" => redirect("/")
РЕДАКТИРАНЕ:
Изглежда, че /*
все още не се поддържа в Slim или е пропуснат в документацията.
Както в node.js правим,
{
path: '/*',
httpMethod: 'GET',
middleware: [function(req, res) {
res.render('index');
}]
}