2012-10-28 33 views
-1

如何將頁面,樣式表或鏈接包含到他們的ASP頁面中?我讀了一些關於'全球'網頁的內容,但我不確定他們的意思,以及我是如何完成這樣的事情的。我相信這是一個簡單的問題,但對我來說這對我有很大的幫助,因爲我已經寫了2天VBScript!一般來說,我也不是HTML的專家,但我覺得我對事物有相當好的把握。我希望能有一個很好的詳細例子說明'全球'頁面如何與我的其他ASP頁面一起播放。在所有頁面中都包含樣式表asp asp.net vbscript

我設置了我的第一個站點,一個管理網站主網站,我打算建立之後。在公共場所前往後,我想把所有的鴨子都連起來。有人可以給我一些關於如何在我的網站中自動包含這些頁面/鏈接(頁面包括(頁眉/頁腳),樣式表等)的詳細信息,而不需要在我製作的每個頁面上使用<!--#include file....,因爲這是有種痛苦,我相信有一種更簡單的方法。如果有,我知道你可以幫忙!在此先感謝,我期待着聽到可用的選項/可能性。

+0

是否有任何理由特別說明您爲什麼選擇將新網站(以及您自己的個人傾向)用於過時的技術? ASP Classic在10年前不再流行,並且不受支持(至少它不會再發展)。如果你想做綠地開發,你應該看看ASP.NET :-) –

+0

我目前正在使用asp vbscript編寫的舊網頁上工作,所以爲了更加熟悉我決定的語言和用法使我的網站如此。我知道經典的ASP是過時的...我與.Net框架的日期,所以即時通訊不關心學習asp.net,因爲我已經寫了C#和知道大量的類/方法。我想,即將到來的是,這是一種學習體驗。 – hijinxbassist

+0

夠公平的。我不確定你的技能水平,所以如果你進入編程行業,我會建議你從其他地方開始......只要你知道你在做什麼就行了,我猜:-) –

回答

0

如果你堅持使用ASP經典,你可能會發現處理的母版一樣的功能有些方法卻是,據我所知,沒有框架suppoerted這樣。

[編輯]鑑於原題的方法首先證明的編輯也不是那麼有趣,所以我建議的替代方法了。

你可以做一個普通的ASP頁面,其服務於所有網站的流量。一個查詢參數然後指定應該顯示哪個子頁面。子頁面由獨立的ASP頁面構成,由普通頁面或母版頁面或其他子頁面執行。這方面的一個非常粗略的例子看起來是這樣的:

<% 
url = Request.QueryString("url") & "" 
if url = "/" or url = "" then 
    subpage = "home.asp" 
else 
    subpage = url & ".asp" 
end if 
%> 
<!DOCTYPE html> 
<html> 
<head> 
    <title>Header for all pages</title> 
    <link rel="stylesheet" href="/css/site.css" /> 
</head> 
<body> 

    <% Server.Execute(subpage) %> 

</body> 
</html> 

該網站應該再以這種方式來解決:

www.domain.com/default.asp?url=/contact 

這將在contact.asp子頁面加載到母版或:

www.domain.com/default.asp?url=/user/1234/profile 

加載用戶的profilepage(由輪廓顯示。asp在文件夾user/1234)。這最後一個例子引發了一些問題,因爲那時每個用戶都必須有一個包含所有asp文件的文件夾(這是遠遠不夠理想的),所以你可能需要對url查詢參數進行一些解釋,以更智能的方式重定向輸入。

另一個問題是,子頁面是ASP頁面本身,這意味着有人可以直接引用它們。這需要採取一些行動來保護這些子頁面免於直接引用。它可以做到,但這可能意味着包括一些代碼=>回到原點!

這種方法的另一個缺點是子頁面在其自己的上下文中呈現,因此無法從調用頁面的上下文訪問功能和數據。這意味着全局數據必須以其他方式共享(會話,應用程序,數據庫或其他方式)。數據不能傳遞到子頁面(並且不,Server.Execute不允許查詢參數)。

將包括單向

我個人認爲您使用頁眉/頁腳包括作爲證明我原來的職位,並顯示如下得到了最大的靈活性。

一種方法是將你的一般東西放入包含中,然後在每個ASP頁面上包含這些位。例如: -

<!-- #include virtual="/includes/header.asp" --> 

content goes here 

<!-- #include virtual="/includes/footer.asp" --> 

而且你header.asp可能是這個樣子:

<!DOCTYPE html> 
<html> 
<head> 
    <title>Header for all pages</title> 
    <link rel="stylesheet" href="/css/site.css" /> 
</head> 
<body> 

和footer.asp像這樣:

</body> 
</html> 

這一策略也有一些缺點。標頭相當靜態,可能會帶來一些SEO問題;對於其中一個,標題應該適合include包含標題標記時很難完成的pagecontent。這可能是由那些之前包括段即設置一些全局變量來簡化:

<% 
title = "Title for this page's content" 
%> 
<!-- #include virtual="/includes/header.asp" --> 

content goes here 

<!-- #include virtual="/includes/footer.asp" --> 

在頭部像這樣

<!DOCTYPE html> 
<html> 
<head> 
    <title><%=title%></title> 
    <link rel="stylesheet" href="/css/site.css" /> 
</head> 
<body> 

,然後,但已經開始「聞」了一點因爲你對包含文件中的包含頁面設置了一些期望。至少在構建頁面時你必須非常自律。

+0

感謝您的帖子,很多很好的信息,我不知道。我將不得不閱讀和研究你在這裏提到的,但我確定我需要在這裏。謝謝 – hijinxbassist

0

你要找的期限爲母版頁,而不是全局頁,這可能是爲什麼你有一個很難找到你要找的內容在谷歌。基本上考慮一個母版頁模板。您創建一個母版頁,然後將其他頁面加載到其中。有些內容佔位符可以放在主服務器上,然後填充到其他頁面上。

所以一個非常基本的例子看起來像這樣。

<%@ Master Language="VB" CodeFile="general.master.vb" Inherits="master1_general"%> 



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 

<head id="Head1" runat="server"> 
<link rel="stylesheet" type="text/css" href="/styles/main.css?v2"/> 

<asp:ContentPlaceHolder id="head" runat="server"> 
</asp:ContentPlaceHolder> 

</head> 

<body> 
<form id="form1" runat="server"> 
    <asp:ContentPlaceHolder id="body" runat="server"> 
    </asp:ContentPlaceHolder> 
</form> 
</body> 
</html> 

那麼你的個人網頁是這樣的:

<%@ Page Language="VB" MasterPageFile="~/master/general.master" AutoEventWireup="false" CodeFile="base.aspx.vb" Inherits="_Default" title="Opportunities" %> 

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> 

//any additional head stuff specific to this page goes here. 

</asp:Content> 

<asp:Content ID="Content2" ContentPlaceHolderID="body" Runat="Server" > 

//your body mark up goes here. 
</asp:Content> 

通知主網頁實際上是怎樣一個網頁。然後它在某些地方有佔位符。在這個人的頭上有一個位置持有人,一個在身體裏。然後,在個別頁面上,我可以確定要使用哪個主頁以及哪些數據(如果有)在佔位符中。我總是在頭部包含一個佔位符,因此我只能在該頁面上加載特定頁面需要的js或資源。

然後,單個頁面只是佔位符中的內容。

+0

問題是關於ASP經典不是ASP.NET ... –

+0

>。<對我來說太早了......我現在就把它留下來,以防萬一這個問題被標記爲錯誤。 –

+0

它被正確標記,但我感謝您花時間回答。一旦我開始寫一些asp.net頁面,我確定它會有所幫助。謝謝 – hijinxbassist

相關問題