0

次の構造のスリムアプリケーションがあります

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

次のことを行う必要があります。

  1. Slim/PHP アプリケーションは、で始まる URLrest serverに応答する として機能する必要があります。json/apis
  2. Client他の URL は、リソースにリダイレクトする必要があります。スタイル、スクリプトは静的に提供する必要があります。
  3. クライアント アプリケーションは独立したアプリケーションです。(この場合は角度のあるアプリケーション)

index.php の内容は

$app = new \Slim\Slim();
$app->add(new \Slim\Middleware\ContentTypes());

// Routes

$app->get('/apis/register',function(){
  echo "apis/register";
});

次のルートはindex.htmlページをレンダリングします。私のAngularアプリケーションの最初のページ。ただし、スタイルとスクリプトは提供されません。

スタイルとスクリプトで 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 構成を介して可能性があります

レールでは、次のルートを書くことができます。

  match "/styles" => redirect("/")
  match "/partials" => redirect("/")

編集:

/*Slim ではまだサポートされていないか、ドキュメントに記載されていないようです。

node.js のように、

{
    path: '/*',
    httpMethod: 'GET',
    middleware: [function(req, res) {           
        res.render('index');
    }]
 }
4

2 に答える 2

1

Slim には、存在しないサブディレクトリ .htacess の書き換えにリダイレクトするための何らかのバグがあるようです。同様の問題がありました。実際にサブディレクトリを作成し、.htaccess を作成して、すべての API 呼び出しを特定のサブディレクトリに向け、App ディレクトリを回避しました。

これを見てください。それは最終的に私の問題を解決しました。

更新: Slim Help Threadでこれを見てください。彼らは確かにこの問題を抱えていました。

于 2014-03-25T05:20:17.153 に答える
0

これらの手順 (Apache モジュール mod_rewrite) を .htaccess ファイルで使用して、存在しないファイルのみを Slim に送信できます。

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

于 2013-10-18T16:17:29.197 に答える