Проблем при интегрирането на Slim php и клиентско приложение

Имам приложение Slim със следната структура

project_root/
  index.php
  Slim
  Client
    index.html
    scripts
    styles
    partials

Трябва да направя следното:

  1. Приложението Slim/PHP трябва да действа като rest server, което отговаря в json за URL адреси, започващи с /apis
  2. Други URL адреси трябва да бъдат пренасочени към Client и ресурси, а именно. стилове, скриптове трябва да се обслужват статично.
  3. Клиентското приложение е независимо приложение. (в този случай ъглово приложение)

съдържанието на 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');
    }]
 }

person hitesh israni    schedule 18.10.2013    source източник


Отговори (2)


Изглежда, че Slim има някакъв вид грешка за пренасочване към несъществуваща поддиректория .htacess rewrites. Имах подобен проблем. Всъщност създадох поддиректорията и направих .htaccess, за да насоча всички извиквания на API към конкретна поддиректория и да избягвам директорията на приложенията.

Разгледайте това. В крайна сметка това реши проблема ми.

АКТУАЛИЗАЦИЯ: разгледайте това в нишката за помощ за Slim. Те наистина имаха този проблем.

person Abhishek Deb    schedule 25.03.2014
comment
Благодаря, ще опитам предложените промени. - person hitesh israni; 25.03.2014

Можете да използвате тези инструкции (Apache Module mod_rewrite) във вашия .htaccess файл, за да изпращате само несъществуващи файлове до Slim.

RewriteEngine при RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [QSA,L]

person webaba    schedule 18.10.2013
comment
Имам тези конфигурации в моя .htaccess - person hitesh israni; 18.10.2013
comment
Получавате ли грешка 404, докато се опитвате директно да получите достъп до тези статични файлове през браузъра? - person webaba; 20.10.2013