发布 ASP.NET MVC/AngularJS 申请
Publishing ASP.NET MVC/AngularJS Application
我正在开发一个带有 AngularJS 前端的 ASP.NET MVC 应用程序,当 运行 来自视觉 studio/iis express 时,它工作得很好,但不是太棒了,当我尝试发布它以便其他用户可以访问它时(例如导航到 http://server/application in a browser). I have IIS configured on server so that http://server/application 指向结构为 "application" 的文件夹:
application
app
areas
foundation
main
layout
layout.html
bin
Content
fonts
Scripts
Templates
Views
Shared
_Layout.cshtml
Index.cshtml
Logs
Global.asax
web.config
初始页面 Index.cshtml(在 Views/Shared/ 下)已加载,但包括以下内容:
<div ng-include="'app/main/layout/layout.html'"></div>
其中 returns 500.24 - 内部服务器错误。
如果我将 ng-include 更改为:
<div ng-include="'application/app/main/layout/layout.html'"></div>
然后发布的应用程序可以工作,但是 运行 它从视觉 studio/iis 表达 returns 404.0 - 尝试加载那个 layout.html 文件时未找到响应,我'我假设是因为在使用 iisexpress 时 运行 没有父 "application" 文件夹。
我确实通过将已发布的应用程序文件夹的内容复制到服务器的 C:\inetpub\wwwroot 文件夹,设法让已发布的应用程序在某一时刻工作,但这似乎不是一个合适的解决方案,所以是什么通知 Angular 查找此 ng-include 的正确位置的最佳方式?
我最后做的是在我的 web.config 文件中添加一个应用程序路径变量,并在我的所有 ng-include 或其他网址前加上应用程序路径前缀,所以它们看起来像
<div ng-include="'application/app/main/layout/layout.html'"></div>
然后将我的项目 Web 属性更新为以下内容:
所以无论我是通过 Visual Studio 发布还是 运行,它都在 'application' 文件夹下 运行 并寻找 html 文件在适当的位置。
我正在开发一个带有 AngularJS 前端的 ASP.NET MVC 应用程序,当 运行 来自视觉 studio/iis express 时,它工作得很好,但不是太棒了,当我尝试发布它以便其他用户可以访问它时(例如导航到 http://server/application in a browser). I have IIS configured on server so that http://server/application 指向结构为 "application" 的文件夹:
application
app
areas
foundation
main
layout
layout.html
bin
Content
fonts
Scripts
Templates
Views
Shared
_Layout.cshtml
Index.cshtml
Logs
Global.asax
web.config
初始页面 Index.cshtml(在 Views/Shared/ 下)已加载,但包括以下内容:
<div ng-include="'app/main/layout/layout.html'"></div>
其中 returns 500.24 - 内部服务器错误。
如果我将 ng-include 更改为:
<div ng-include="'application/app/main/layout/layout.html'"></div>
然后发布的应用程序可以工作,但是 运行 它从视觉 studio/iis 表达 returns 404.0 - 尝试加载那个 layout.html 文件时未找到响应,我'我假设是因为在使用 iisexpress 时 运行 没有父 "application" 文件夹。
我确实通过将已发布的应用程序文件夹的内容复制到服务器的 C:\inetpub\wwwroot 文件夹,设法让已发布的应用程序在某一时刻工作,但这似乎不是一个合适的解决方案,所以是什么通知 Angular 查找此 ng-include 的正确位置的最佳方式?
我最后做的是在我的 web.config 文件中添加一个应用程序路径变量,并在我的所有 ng-include 或其他网址前加上应用程序路径前缀,所以它们看起来像
<div ng-include="'application/app/main/layout/layout.html'"></div>
然后将我的项目 Web 属性更新为以下内容:
所以无论我是通过 Visual Studio 发布还是 运行,它都在 'application' 文件夹下 运行 并寻找 html 文件在适当的位置。