laravel 4 - route使javascript无法从视图加载

时间:2014-09-18 23:47:44

标签: javascript laravel-4 loading assets laravel-routing

我的localhost使用laravel路径打开我的视图,该视图有效:

http://localhost/view/stock/equipment

Laravel 4路线返回我的观点:

Route::get('view/stock/equipment', array('uses'=>'App\Controllers\Stock\EquipmentController@getIndex'));

我的观点包含:

        {{ HTML::script('js-views/stock/equipment/bootstrap.js') }}

在我的html页面中显示为:

<script src="http://localhost/js-views/stock/equipment/bootstrap.js"></script>

但是bootstrap.js不会加载,当我看到使用firebug时,我发现它没有从正确的路径加载:

 GET http://localhost/view/stock/bootstrap.js   404 Not Found

我可以看到来自laravel路线的'视图/库存部分'。

在Laravel中正确设置了公共路径。

怎么会这样?

2 个答案:

答案 0 :(得分:1)

那么如果你在浏览器中转到http://localhost/js-views/stock/equipment/bootstrap.js会怎样?你应该看到javascript文件。

为什么将javascript与库存设备一起存储?将它放在资产文件夹中会不会更好?这是我如何构建我的资产(在laravel/public下):

assets/
       css/
       img/
       js/

assets.php配置文件中定义路径:

return array(
    'css' => '/assets/css',
    'img' => '/assets/img',
    'js' => '/assets/js'
);

然后使用辅助函数返回其URL:

class Asset
{
    private static function getUrl($type, $file)
    {
        return URL::to(Config::get('assets.' . $type) . '/' . $file);
    }

    public static function css($file)
    {
        return self::getUrl('css', $file);
    }

    public static function img($file)
    {
        return self::getUrl('img', $file);
    }

    public static function js($file)
    {
        return self::getUrl('js', $file);
    }

}

为了显示图像,我可以这样做:

HTML::image(Asset::img('logo/full.png'), "My website logo")

但我让MaxCDN为我主持Bootstrap(代码来自Bootstrap website):

<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">

<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css">

<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>

答案 1 :(得分:0)

将javascript文件保存到/ var / www / yourprojectname / public folder / js

并使用<script src="{{ asset('js/main.js') }}"></script>