我目前正在學習Angular。我已經使用HashLocation實現了路由器,因爲PathLocation在Apache服務器中不起作用。我經歷了各種各樣的帖子來解決這個問題,但最終還是要用Apache的HashLocation解決。HashLocation策略有什麼不足嗎?
我只想知道,如果存在HashLocation的任何缺點,就像有沒有與HashLocation無效的任何Angular功能,我可以使用HashLocation生產準備應用程序?
我目前正在學習Angular。我已經使用HashLocation實現了路由器,因爲PathLocation在Apache服務器中不起作用。我經歷了各種各樣的帖子來解決這個問題,但最終還是要用Apache的HashLocation解決。HashLocation策略有什麼不足嗎?
我只想知道,如果存在HashLocation的任何缺點,就像有沒有與HashLocation無效的任何Angular功能,我可以使用HashLocation生產準備應用程序?
據,https://angular.io/docs/ts/latest/guide/router.html#!#which-strategy-is-best-
幾乎所有角項目應該使用默認的HTML5風格。它生成更容易讓用戶理解的URL。它保留了稍後進行服務器端渲染的選項。
服務器端渲染使您的應用程序更快,更安全。
但它(HashLocation)不能用於Apache(至少我不能配置它)。那麼Angular 2與大多數共享主機無關,它使用apache? – raju
@raju我不知道你使用的是什麼設置,但我建議你看一看angular-cli,它使得一切都變得簡單。這裏有一個類似的問題回答了一個問題:http://stackoverflow.com/questions/38183800/angular-cli-routing-doesnt-work-on-apache-server – echonax
我根據鏈接設置.htaccess + httpd.conf ,但仍然在重新加載404頁面。 – raju
乾淨的URL /路徑位置策略的優點包括: A.搜索引擎友好性 B.緩存資源或靜態資產。
如果這2個可以忽略你的用例,你可以去散列位置策略。
在apache中配置路徑位置 您需要將其添加到.htaccess文件中。
RewriteEngine On # If an existing asset or directory is requested go to it as it is RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR] RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d RewriteRule^- [L] # If the requested resource doesn't exist, use index.html RewriteRule^/index.html
一些@GünterZöchbauer糾正我,如果我錯了,但你也不能使用服務器端與HashLocation戰略AFAIR渲染可能會考慮結果URL醜陋 –
。 – echonax
我不知道服務器端渲染,但我可以想象這是真實的。 –