2014-10-27 36 views
1

是否可以在包括刀片服务器在内的整个应用程序的所有路线,URL和链接中添加一些前缀? 比如我有途径为所有路线,链接和网址添加前缀

Route::get('/', '[email protected]'); 

,而是它我想有

Route::get($prefix . '/', '[email protected]'); 

,并在刀片

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

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

我试过

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

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

+0

你确定这是你真正想要的吗? Laravel旨在运行在webroot上,公共文件夹是外部世界可以访问的公共文件夹。我会考虑使用子域,如果你想在同一个域上运行多个应用程序或类似的东西。 – MightyPork 2014-10-27 18:01:46

+0

是的,我没有别的选择,因为我必须使用特定的服务器。所有文件保存在'/ var/www/test/test'中,但我无法访问第一个测试,并且我的应用程序在_example.org/test_上运行。当我想以_example.org/test/login_为例时,我必须使用'Route :: get('test/login','...');'而不是'Route :: get('/ login ','...');'。因此,在将应用程序从本地主机迁移到此服务器时,以这种方式编写路由和链接是非常烦人的。 – 2014-10-27 18:10:47

回答

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); 
}); 

我希望有人会发现这很有用。

相关问题