我正在开发一个angularJS应用,它的格式(在开发中) -
http://localhost:6001/#/home/index
http://localhost:6001/#/content/index
由于此应用程序也可以在桌面浏览器上使用,我希望网址没有“#”,所以我在我的应用程序的配置部分添加了这个 -
$locationProvider.html5Mode(true);
哪个工作正常,网址不显示'#'。但现在有一个问题。在浏览器中刷新特定页面时,现在我收到此错误 -
Cannot GET /home/index
是否需要进行其他更改才能使其正常工作?
注意:此应用使用cordova CLI并托管在Node.js服务器上。
答案 0 :(得分:1)
尝试将您的路线放入:
app.get(*, function(req,res) {
//return the main index file
});
这将导致任何不匹配的路线为索引页面提供服务,并从那里开始处理这条路线。
答案 1 :(得分:0)
试试这个:
确保server.js文件中包含以下这些行
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorAccent"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Overlayed Text"
android:layout_gravity="center"/>
</FrameLayout>
为什么这样?请在此处阅读 - https://github.com/angular-ui/ui-router/wiki/Frequently-Asked-Questions#how-to-configure-your-server-to-work-with-html5mode
第一步导致我的应用程序出现在以下console.log消息中:
var express = require('express');
var app = express();
app.use(express.static(__dirname + '/public.build'));
app.use(function(req, res) {
res.sendFile('index.html', { root: __dirname + "/public.build" });
});
正如您所看到的,样式正在尝试从不存在的路径加载(/ board /文件夹不在应用程序中,它是ui-router中的状态之一)。 为了解决这个问题,我更换了以下一行
Resource interpreted as Stylesheet but transferred with MIME type
text/html: "http://localhost:8080/board/css/style.css".
这一个:
<link rel="stylesheet" href="css/style.css">