我有一个Angular App,其文件系统结构如下:
├── README.md
├── app
│ ├── mycomp
│ │ ├── mycomp.component.js
│ │ ├── mycomp.module.js
│ │ └── mycomp.template.html
│ ├── app.config.js
│ ├── app.css
│ ├── app.module.js
│ ├── app.spec.js
│ ├── index.html
├── bower.json
├── e2e-tests
├── karma.conf.js
├── node_modules
├── package.json
我的app.config.js
的路线为:
angular.
module('MyApp').
config(['$locationProvider', '$stateProvider', '$urlRouterProvider',
function config($locationProvider, $stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/home');
$locationProvider.html5Mode({
enabled: true
});
var myCompState = {
name: 'myComp',
url: '/mycomp',
template: '<mycomp></mycomp>'
};
$stateProvider.state(myCompState);
}
]);
所以,当我点击http://app.localhost/mycomp
时,Nginx会抛出403 Forbidden Error,因为mycomp
是一个目录,我想将其作为应用程序路径访问。
mycomp
内的 app
目录只包含.js
,.css
和.html
个文件。
我的Nginx配置是:
server {
listen 80;
server_name app.localhost;
root /usr/local/AngularApp/app;
location ~ \.(gif|jpg|jpeg|png|js|css)$ {
}
location / {
try_files $uri $uri/ /index.html =404;
}
如何制作Nginx规则,如果它是一个类似路径的目录,即没有任何扩展名,它只使用/index.html
来解析它?