2
我一直在尋找如何獲取HTML頁面的基礎URL,以便來自瀏覽器的相對url請求使用該基礎。修改<base>在服務器端動態標記渲染
下面是答案 Defining root of HTML in a folder within the site root folder
當從服務器渲染HTML - 有一個<base>
元素添加到HTML的可靠途徑?
HTML文件是自動生成的,我不想手動將<base>
標記添加到文件,如果我可以避免它。當頁面呈現時,以某種方式動態地添加它會很好。
因此,這裏是HTML,因爲它主張:
<head>
<title>Code coverage report for All files</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="prettify.css" />
<link rel="stylesheet" href="base.css" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(sort-arrow-sprite.png);
}
</style>
</head>
我想補充與服務器渲染時基本標籤,所以它看起來像:
<head>
<title>Code coverage report for All files</title>
<meta charset="utf-8" />
<base href="http://localhost:3050/coverage/lcov-report/cdt-now/index.html"> // <<<<
<link rel="stylesheet" href="prettify.css" />
<link rel="stylesheet" href="base.css" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(sort-arrow-sprite.png);
}
</style>
</head>
這個問題我假設index.html文件不在我的項目的根目錄下:
但是,index.html文件會生成相對路徑請求,如上面<head>
中的<link>
標記所示。
我目前呈現的頁面是這樣的:
router.get('/', ac.allow('Admin'), function (req, res, next) {
let html = path.resolve(__dirname + '/../coverage/lcov-report/cdt-now/index.html');
res.setHeader('content-type', 'text/html');
fs.createReadStream(html).pipe(res);
});
您需要某種模板。你知道Jade,EJS嗎? – sidewinder
就像我在問題中所說的 - 關鍵部分是我不控制文件 - 它是自動生成的 - 我不想手動修改文件,如果我可以避免它。 –
你不需要。 – sidewinder