2015-06-06 31 views
6

Tôi đang phát triển một dự án sử dụng Laravel 5 và AngularJS. Tôi muốn bậtLaravel 5 + AngularJS html5Mode

$locationProvider.html5Mode(true); 

và ngừng tải lại trang. Trang không tải lại khi tôi đặt nó thành false và truy cập liên kết.

Đây là tôi route.php

Route::get('/', function() { 
    return View::make('index'); 
}); 

góc đang

app.config(function($routeProvider, $locationProvider) { 
    $routeProvider.when('/', { 
     templateUrl: 'views/feed.html', 
     controller: 'fdController' 
    }).when('/collections', { 
     templateUrl : 'views/collections.html', 
     controller: 'clController' 
    }).otherwise({ 
     redirectTo : '/' 
    }); 

    $locationProvider.html5Mode(true); 
}); 

Khi tôi ghé thăm một liên kết html5Mode(false) localhost:8000/#/ -> localhost:8000/#/feed trang không làm mới

Khi html5Mode(true) và tôi ghé thăm localhost:8000/ -> localhost:8000/feed, trang làm mới và tôi nhận được e rror:

Sorry, the page you are looking for could not be found.

+0

Bạn có thể chia sẻ thêm mã Angular của mình không? cách định tuyến của bạn và nếu bạn có những thứ như target = "_ self" trong liên kết của bạn? Phía PHP có thể không phải là vấn đề – n00b

+0

Tôi đã bao gồm nó ngay bây giờ – user2595818

+0

Vui lòng giải thích các vấn đề chi tiết hơn. Không rõ ý của bạn là gì bởi 'không tải lại ' – charlietfl

Trả lời

5

tôi đã thay đổi route.php tôi để

Route::get('/', function() { 
    return View::make('index'); 
}); 


Route::get('{all}', function() { 
    return View::make('index'); 
}); 

Và thêm một cơ sở <base href="/"> để index.php tôi Mọi thứ hoạt động ngay bây giờ và trang không làm mới.

+0

sử dụng 'Route :: get ('{all}')' là một thực tế rất nguy hiểm, nó có thể dẫn đến các lỗi tinh vi như yêu cầu tệp javascript và xem chỉ mục của bạn thay thế. bạn nên cân nhắc sử dụng 'App :: missing' để thay thế, vì điều này sẽ chỉ kích hoạt trên các tuyến đường chưa có kết quả phù hợp với một tuyến đường hoặc tài nguyên đã xác định. – Claies

+1

Tôi đọc xung quanh rằng '' '' App :: missing'''' không có sẵn trong laravel 5 – user2595818

+0

Tôi nghĩ rằng trong phương pháp này bạn không thể giải quyết các trang lỗi 404. câu trả lời này làm việc cho tôi với một chút thay đổi: http://stackoverflow.com/questions/16569841/reloading-the-page-gives-wrong-get-request-with-angularjs-html5-mode#answer-25961313 – ivahidmontazer

Các vấn đề liên quan