我有一個平均堆棧的網站。最初,views/index.html
(具有<ui-view></ui-view>
)是所有頁面的入口點。它使用angular-ui-router
和html5mode
。因此,瀏覽器中的https://localhost:3000/XXXX
將保持不變(而不是添加#
),並顯示基於路由器的相應內容。添加office.js在網址中添加#,然後將其刪除
然後,我希望服務器也服務於Office加載項。我將需要views/addin.html
,其中包含office.js
和另一個路由器,以便該網站提供一組網址https://localhost:3000/addin/XXXX
,我不介意它是否爲html5mode
或不是(某個url可能包含#
某處)。
所以這裏的routes/index.js
的correpsonding:
router.get('/addin/*', function (req, res) {
console.log("router.get /addin/*");
res.sendfile('./views/addin.html')
});
router.get('*', function(req, res) {
console.log("router.get *");
res.sendfile('./views/index.html');
});
這裏是views/addin.html
:
<html>
<head>
<title>F-addin</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.3.2/angular-ui-router.js"></script>
<!--<script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js"></script>-->
<base href="/" />
</head>
<body ng-app="addinF">
addin content
<ui-view ng-cloak></ui-view>
</body>
<script>
var addinApp = angular.module('addinF', ['ui.router'])
addinApp.config(['$stateProvider', '$locationProvider', function ($stateProvider, $locationProvider) {
$stateProvider
.state('addinNew', {
url: '/addin/new',
template: "new page"
})
.state('addinHome', {
url: '/addin/home',
template: "home page"
})
$locationProvider.html5Mode(true);
}]);
</script>
</html>
當office.js
在瀏覽器的工作評價如上,https://localhost:3000/addin/new
和https://localhost:3000/addin/home
好。但是,當office.js
未註釋時,會出現一個奇怪的行爲:在瀏覽器中輸入https://localhost:3000/addin/new
將更改爲https://localhost:3000/#/addin/new
,然後更改回https://localhost:3000/addin/new
。我們會看到addin content new page
出現一次並消失。
隨着office.js
註釋掉,如果我們加載一個清單文件與<SourceLocation DefaultValue="https://localhost:3000/addin/new"/>
,我們也會看到在任務窗格中addin content new page
出現一次,消失,然後Add-in Error Something went wrong and we couldn't start this add-in. Please try again later or contact your system administrator.
沒有html5mode
這裏,.../addin/new
或.../addin/home
在瀏覽器將只顯示addin content
;該加載項可以加載,也只有addin content
。
我的目標是讓一個加載項指向.../addin/new
或.../addin/home
工作。必須在某處加載office.js
。我不介意它是否爲html5mode
(即,網址爲#
),但無論如何這種行爲都是奇怪的或不令人滿意的。有誰知道如何解決它或有一個解決方法?
https:// stackoverflow的重複項。COM /問題/ 44604703 /加辦公室-JS-禁用-html5mode/44858254#44858254。 –