gpt4 book ai didi

javascript - Angular js路由,500内部服务器错误

转载 作者:行者123 更新时间:2023-11-30 17:26:11 24 4
gpt4 key购买 nike

我有这样的目录结构 -

-project
-public
-app
-app.js ( angular app module )
-server
-server.js ( node root js file )
-includes
-layout.jade
-scripts.jade
-views
-index.jade
-partials
-main
-main.jade
-about.jade
-about-vid.jade
footer_main.jade
-account
-login.jade

现在,当我尝试在一个“partials” 目录中使用所有部分时,一切正常,但是当我尝试将它们组织在单独的目录中时,出现内部服务器错误。这是正常的相关代码 -应用程序.js-

angular.module('app',['ngResource','ngRoute']);

angular.module('app').config(function($routeProvider,$locationProvider){
$locationProvider.html5Mode(true);
$routeProvider
.when('/', { templateUrl: '/partials/main', controller: 'mainCtrl'});
});

server.js 代码 -

app.use(express.static(__dirname + '/public'));
app.get('/partials/:partialPath',function(req,res){
res.render('partials/' + req.params.partialPath);
});

app.get('*',function(req,res){
console.log(mongoMessage);
res.render('index');
});

由 server.js 渲染的 index.jade -

include ../includes/layout
.header-white.navbar.navbar-default.navbar-static-top
.container
.navbar-header
button(data-target=".navbar-collapse",data-toggle="collapse",class="navbar-toggle btn navbar-btn")
span.icon-bar
span.icon-bar
span.icon-bar
a(href="/",class="navbar-brand")
img(alt="CampuStop",id="logoimg",src="/img/logo_big.png",style="height:74px")
div(ng-include="'/partials/login'")
block main-content
div(ng-view)
div(ng-include="'/partials/footer_main'")

include ../includes/scripts

但是如果我尝试组织它们并进行以下更改,我会在登录控制台中收到 500 内部服务器错误,app.js - 将模板 url 更改为 /partials/main/main/

angular.module('app').config(function($routeProvider,$locationProvider){
$locationProvider.html5Mode(true);
$routeProvider
.when('/', { templateUrl: '/partials/main/main', controller: 'mainCtrl'});
});

index.jade -将包含 url 更改为相应的目录:

div(ng-include="'/partials/account/login'")
div(ng-include="'/partials/main/footer_main'")

server.js - 将 :partialParams 替换为 *

app.get('/partials/*',function(req,res){
res.render('partials/' + req.params);
});

任何人都可以告诉我哪里出错了或者我应该提供什么其他信息吗?

最佳答案

当 Angular 请求模板时,它会设置相对于模板文件位置的基本路径。因此,现在对 partials 的任何调用都是从相对于父模板的不同目录调用的。您需要调整您的部分路径来解决这个问题。

也许是这样的:

div(ng-include="'../partials/account/login'")

您收到 500 错误是因为 Angular 找不到部分 - 它可能正在尝试获取 main/partials/account/login

关于javascript - Angular js路由,500内部服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24218898/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com