Polymer 100% アプリであり、Firebase を搭載したアプリケーションでかなりの URL を使用するのに問題があります。これは、Polymer Starter Kit 1.2.0 に基づいています。
ルートにアクセスしたいlocalhost:5000/user/edit
。ホームページ (localhost:5000) でボタンをクリックすると、href="/user/edit"
正常に動作します。しかし、ホームページを経由せずにルートに直接行った場合のページを更新すると"/user/edit"
、ファイルの検索に関する多くの問題が表示されます。コンソールには次のように表示されます。
edit:36 GET http://localhost:5000/user/styles/main.css edit:37 GET
http://localhost:5000/user/styles/pikaday.css edit:41 GET
http://localhost:5000/user/bower_components/webcomponentsjs/webcomponents-lite.js
edit:45 GET http://localhost:5000/user/elements/elements.html 404 (Not
Found)
私のapp.jsファイルには次の行しかありません。
var app = document.querySelector('#app');
app.baseUrl = '/';
そして、私のrouting.htmlは次のとおりです。
<script>
window.addEventListener('WebComponentsReady', function() {
// Removes end / from app.baseUrl which page.base requires for production
if (window.location.port === '') { // if production
page.base(app.baseUrl.replace(/\/$/, ''));
}
// Routes
page('/', function() {
app.route = 'home';
});
page(app.baseUrl, function() {
app.route = 'home';
});
page('/user/edit', function() {
app.route = 'user/edit';
});
page('*', function() {
console.info('404 page');
page.redirect(app.baseUrl);
});
// add #! before urls
page({
hashbang: false
});
});
</script>
私は多くのことを試しました:
- ルート
/user/edit
をに変更すると、正常にuser-edit
動作します。どうやら問題はルートの「/」に関連しているようです。 - hashbang を true に設定すると、正常に動作します。しかし、私は自分のアプリケーションできれいな URL を動作させたいと思っています。
- index.html でブラウザーに変更
<link rel="import" href="elements/elements.html">
すると、すべての要素が検出されますが、ルーティングは同じ問題で続行されます。<link rel="import" href="/elements/elements.html">
この問題を解決する方法についてのアイデアはありますか? きれいな URL を使いたいと思っている多くの人に役立つと信じています。