每当我使用表单localhost:8000/news
的网址在我的开发网站上加载页面时,一切都正确加载。但是,如果我添加一个尾部斜杠,如下所示:localhost:8000/news/
该网站会冻结。我可以看到它正在尝试使用路径/news/partials/footer
和其他一些加载部分。它试图加载主页使用的部分,但路径不正确。我不知道为什么这会冻结Chrome,但确实如此。
我一直在努力弄清楚这是怎么回事,但似乎无法理解为什么会这样。这是我正在使用的代码(取出一些我认为不相关的部分):
app.js:
var app = module.exports = express();
// Configuration
app.configure(function() {
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.static(__dirname + '/public'));
app.use(app.router);
});
app.configure('development', function(){
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});
app.configure('production', function(){
app.use(express.errorHandler());
});
var galleryProvider = new GalleryProvider();
galleryProvider.client.open(function(err, result) {
galleryProvider.client.authenticate('user', 'pass', function(err, result) {
if (!err) {
console.log('Mongo connected. Listening on port ' + (process.env.PORT || 8000));
app.listen(process.env.PORT || 8000);
} else {
console.log(err);
}
});
});
// Routes
app.get('/', routes.index);
app.get('partials/:name', routes.partials);
/* some backend routes that the page does not look at */
app.get('*', routes.index);
路由/ index.js
/*
* GET home page.
*/
//get correct directory path
var filePath = __dirname.replace('routes', 'views/');
exports.index = function(req, res) {
res.sendfile(filePath + 'index.html');
};
exports.partials = function (req, res) {
var name = req.params.name;
res.sendfile(filePath + 'partials/' + name + '.html');
};
公共/ JS / app.js
// Declare app level module which depends on filters, and services
var lscGallery = angular.module('lscGallery', []);
lscGallery
.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
$routeProvider.when('/', {templateUrl: 'partials/home', controller: 'AppCtrl'});
$routeProvider.when('/artists', {templateUrl: 'partials/artists', controller: 'GalleryCtrl'});
$routeProvider.when('/exhibitions', {templateUrl: 'partials/exhibitions', controller: 'GalleryCtrl'});
$routeProvider.when('/news', {templateUrl: 'partials/news'});
$routeProvider.when('/about', {templateUrl: 'partials/about'});
$routeProvider.when('/contact', {templateUrl: 'partials/contact'});
$routeProvider.when('/admin', {templateUrl: 'partials/login'});
$routeProvider.otherwise({redirectTo: '/'});
$locationProvider.html5Mode(true);
$locationProvider.hashPrefix('!');
}]);
谢谢!
P.S。如果有帮助,我会使用this作为我网站的种子。
答案 0 :(得分:0)
我明白了。我认为在美好的一天坐在外面以获得一些清晰度。
部分路线仍被设置为指令中的相对路径(例如templateUrl: 'partials/gallery'
),即使我想总是从根网址中拉出部分路径。傻我。