为所有路由,链接和URL添加前缀

时间:2014-10-27 17:43:38

标签: laravel-4 laravel-routing

是否可以在包括刀片在内的一个地方为整个应用程序中的所有路由,网址和链接添加一些前缀? 例如,我有路线

Route::get('/', 'HomeController@showWelcome');

但不是我想拥有

Route::get($prefix . '/', 'HomeController@showWelcome');

和刀片

{{ HTML::style('css/bootstrap.min.css') }} 

{{ HTML::style($prefix . 'css/bootstrap.min.css') }}

我试过

Route::group(array('prefix' => $prefix), function() {});

但它没有为刀片中的链接应用前缀。

1 个答案:

答案 0 :(得分:1)

我找到了简单的解决方案。我在项目中创建了.env.php文件夹,看起来像

return array(
    'ROUTES_PREFIX' => 'prefix',
);

然后将此代码添加到所有路径

Route::group(array('prefix' => $_ENV['ROUTES_PREFIX']), function() { 
    // routes here
});

并为stylescriptimage创建了自定义宏。例如,我style的宏看起来像这样

HTML::macro('extendedStyle', function($url, $attributes = array(), $secure = null) {
    $prefix = $_ENV['ROUTES_PREFIX'] == '' ? '' : $_ENV['ROUTES_PREFIX'] . '/';
    return HTML::style($prefix . $url, $attributes, $secure);
});

我希望,有人会觉得这很有用。