![](/img/trans.png)
[英]How can I make my site’s visitors access my web pages without adding the page extension
[英]How can I edit a live webpage without causing chaos for the page's visitors during my editing session?
如果這些非常基本的問題已被多次詢問和回答,但幾個小時的搜索沒有發現任何相關問題,請原諒我。
(1) 在網頁“上線”之后,Stackoverflow 開發人員想要對頁面進行一些更改,但不希望這些更改“上線”,直到他完成原型設計和測試更改的周期(你知道, 基本的 SDLC)。 他是怎么做到在網站上直播的?
(2) 問題的更基本的改寫:當我花費 30 分鍾更新現有的實時網頁時,似乎在此期間訪問該網頁的任何訪問者都會觀察到每一個增量變化(包括無意的錯誤,拼寫錯誤等),我正在實時制作。 我一定在這里遺漏了一些非常明顯的東西,請原諒我? 如何更改當前活動的網頁而不會在我的編輯會話期間造成此類混亂?
我看到這么多不好的評論和一個不好的答案。 您永遠不會在實時頁面上工作。 如果你打破它怎么辦? 你問這個問題的事實告訴我你不夠好,不能不犯錯誤。
在我看來,真的只有一種好方法可以做到這一點。
創建一個子域 dev.whatever.com 並將您當前的實時站點放在那里。 從您的本地項目開始,當您對結果感到滿意時,然后將其移至您的開發站點以確保沒有問題,首先在那里完成所有工作,然后當您滿意時,您就可以開始生活了。
為什么不使用不同的文件名保存頁面的副本。 上傳並處理它,直到它按您想要的方式工作。 除了您之外,沒有人會知道該頁面存在,因此沒有人會看到任何問題。 一旦您對它感到滿意,只需使用該頁面代碼即可。
我認為在本地存儲庫上工作並學習版本控制是最好的。 這樣,萬一您碰巧完全破壞了您的代碼,您可以毫無顧慮地恢復到以前的工作版本。 您也可以通過這種方式使用本地服務器,只有您可以看到您的代碼正在進行的當前更新。 一旦您對一切都感到滿意並且所有代碼都可以正常工作,您就可以將更改推送到遠程服務器上。
版本控制: https://git-scm.com/
除了我的評論之外,這里還有一個簡單的緩存頁面腳本,它使用定義來允許頁面在緩存模式或動態模式下運行。 CACHESITE
切換為 false 以將其返回到頁面的實時呈現。 如果您是管理員(或您決定的其他觸發器),則需要將其擴展以繞過緩存,因此您可以看到所做的更改,但用戶看到的是緩存頁面:
<?php
// If true, cache this page
define("CACHESITE",true);
function CachePage($content = '',$saveto = 'index.php')
{
ob_start();
echo $content;
$data = ob_get_contents();
ob_end_clean();
if(CACHESITE) {
// If you have a define for site root, use instead
$dir = $_SERVER['DOCUMENT_ROOT'].'/temp/';
if(is_file($cached = $dir.$saveto)) {
include($cached);
return;
}
if(!is_dir($dir))
mkdir($dir,0755,true);
$cfile = fopen($cached,'a');
fwrite($cfile,$data);
fclose($cfile);
}
return $data;
}
// Whatever your content is, it needs to be in a string
// Use output buffering if you have include pages
$test = 'test is the best'.rand();
echo CachePage($test,'thispage.php');
?>
無論如何,有很多方法可以做這種事情,但緩存相對來說效果更好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.