Bạn cần phải thiết lập máy chủ của bạn để viết lại tất cả mọi thứ để index.html mỗi: https://github.com/angular-ui/ui-router/wiki/Frequently-Asked-Questions#how-to-configure-your-server-to-work-with-html5mode ...
<VirtualHost *:80>
ServerName my-app
DocumentRoot /path/to/app
<Directory /path/to/app>
RewriteEngine on
# Don't rewrite files or directories
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule^- [L]
# Rewrite everything else to index.html to allow html5 state links
RewriteRule^index.html [L]
</Directory>
</VirtualHost>
Ứng dụng của tôi đã params truyền cho một bộ điều khiển (thông qua ui-router) vì vậy trước khi html5mode tôi sẽ goto www.blah.com/angapp/#/myUIrouterController?param_x=1 & param_y = 2 Đoán trình duyệt biết rằng/#/phần đường dẫn thư mục sẽ phân phối index.html.
Bây giờ, # sẽ biến mất với html5mode, máy chủ theo mặc định không biết để phục vụ index.html cho thư mục đó vì url sẽ chỉ là: www.blah.com/angapp/myUIrouterController?param_x= 1 & param_y = 2 myUIRouterController không phải là tệp thực để máy chủ chỉ phục vụ 404, Vì vậy, tôi nghĩ rằng viết lại là cần thiết để nó biết gửi mọi thứ tới index.html (như trên kết hợp với số < cơ sở > thẻ nên hoạt động ... lưu ý: requireBase là tùy chọn nhưng nghe nó giúp các trình duyệt cũ hơn như IE9 có thể).
Tôi chưa tự làm điều này, nhưng tôi tin rằng bạn cần viết lại URL của mình để chúng trỏ tới index.html của bạn (nghĩa là máy chủ sẽ xuất '/ index.html' khi bạn yêu cầu một cái gì đó như'/liên lạc/london-office'). Nếu bạn đang sử dụng apache, hãy nhìn vào 'mod_rewrite'. –