所以这让我疯狂......
我在Visual Studio 2015的一个网站上工作(所以从开始页面:File> New>网站...不是新建项目> Web> ASP.NET Web应用程序),当我使用VS作为调试器/本地主机时,事情进展顺利。
现在,谨慎起见,我想上传该网站到一个www.mysite.com/sandbox/文件夹,我可以测试一些其他项目,如数据库访问等(因为该网站是活的,我不'我想要替换它,直到我准备好了)。但由于某种原因,所有文件(通过本地主机工作正常)似乎指向“/”的母版页和其他项目,而不是“/ sandbox /”...
有没有什么办法可以告诉VS根不在它认为的地方? 到目前为止,我已经证实,这纯粹是根源位置:我谨慎地创建了一个不同的项目(使用文件名,我可以在实时服务器上轻松找到&删除),以查看服务器上是否有任何错误,但如果我将文件中的根保存为与服务器上的根相同(换句话说,如果我将我的网站上传到根目录,那么引用就可以),它们会正常加载。顺便说一句,我以前在做过这些工作的时候,我直接在一个不活跃的网站的根级别工作,并且一切正常。
是否有任何方式(可能在web.config中)我可以告诉它,我在任何时候设置了MasterPageFile =“〜/ Master/masterPage.master”它实际上应该指向MasterPageFile =“〜/沙箱/ Master/masterPage.master“?我的印象是“〜”会照顾到这一点,但显然不是? 基于谷歌搜索,我发现在Web应用程序(而不是网站)中有一种方法来定义“Web”部分,但该选项似乎并不适用于此...为Visual Studio 2015设置网站根(〜)
任何帮助将不胜感激。
谢谢,
JoeE
编辑:
所以,我说这看起来像一个“文本的墙”(不管这可能意味着)... 让我透露更多的细节与步骤举个例子,或许有人可以给我正确的方向。
- 打开VS2015,转到文件>新建> Web站点......从
安装选\ Tempates \ Visual Basic中\ ASP.NET空Web站点 - >确定 右键点击项目解决方案下,并添加>母版页,然后 编辑MasterPage.master有这样的内容:
<%@ Master Language="VB" CodeFile="MasterPage.master.vb" Inherits="MasterPage" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <asp:ContentPlaceHolder id="head" runat="server"> </asp:ContentPlaceHolder> </head> <body> <form id="form1" runat="server"> <div> <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"> Some Content from Master </asp:ContentPlaceHolder> </div> </form> </body> </html>
添加> Web窗体(默认)和编辑其内容为:
<%@ Page Language="VB" AutoEventWireup="false" MasterPageFile="~/MasterPage.master" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<asp:Content ContentPlaceHolderID="ContentPlaceHolder1" runat="server" >
<p>Some Data from Page</p>
</asp:Content>
现在我的测试来看,它在这一点上与F5,我得到的是说,一个浏览器窗口“一些页面数据”......如预期的那样。
现在来的时间把它上传到我的服务器(由1 & 1主持):
- 去盖>发布Web App的
- 资料>自定义配置文件
- 连接>发布方式: FTP
- 服务器:example.com
- 网站路径:/沙/
- 目标网址:http://www.example.com/sandbox/Default.aspx
- 设置>(在默认保留)
当我点击发布,它需要我到Default.aspx页面,但指出:
Parser Error
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.
Parser Error Message: The file '/MasterPage.master' does not exist.
Source Error:
Line 1: <%@ Page Language="VB" AutoEventWireup="false" MasterPageFile="~/MasterPage.master" CodeFile="Default.aspx.vb" Inherits="_Default" %>
Line 2:
Line 3: <asp:Content ContentPlaceHolderID="ContentPlaceHolder1" runat="server" >
源文件:/沙/ siteTest /默认。 ASPX线:1个
我的问题是这样的:我在哪里需要告诉Visual Studio中的文件夹结构的确不包含一切下的“/沙箱/”文件夹中,而不是仅仅“/”?我知道我可以进入Default.aspx文件,并将语句更改为MasterPageFile="~/sandbox/MasterPage.master"
,但是那里有一个更好的方法...?我期待发布选项中的条目可以做到这一点,但它不会...或者,我尝试以编程方式在PreInit事件期间更改此设置,但这并不奏效...
谢谢, Ĵ
你可能要考虑重写这个。在目前的形式中,这看起来像是一长串文字。 –