根據瀏覽器的語言,嘗試將用戶重定向到同一站點的不同版本時,我遇到了一個愚蠢的問題。將用戶重定向到瀏覽器語言的CSS問題
其實用戶似乎被正確地重定向到語言網站版本,問題是該網站沒有適當地加載CSS和JS文件(我認爲這是由於其文件夾結構),而我不知道我該如何解決它。
要執行我已成立了一個名爲其放置在根文件夾「的index.php」文件重定向,它具有以下PHP代碼:
<?php
header("Location: " . getLanguage());
function getLanguage(){
$availableLanguages = array('es', 'en');
$defaultLanguage = 'en';
$token = strtok($_SERVER['HTTP_ACCEPT_LANGUAGE'], ",;");
while ($token !== false) {
$language = substr($token, 0, 2);
if (in_array($language, $availableLanguages)) {
return $language;
}
$token = strtok(",;");
}
return $defaultLanguage;
}
?>
正如你所看到的只有2個語言(英語和西班牙語)。
下一步是放置2個不同的文件夾與他們各自的「index.html的」文件:
/ES - >爲西班牙的index.html版本 /EN - 爲對英語> index.html的版本
所以我們可以看到下面的示例文件夾結構的服務器:
- HTTP/IMG/picture.jpg
- HTTP/JS /的script.js
- HTTP/CSS/style.css中
- HTTP/EN/index.html的(該網站的英文版)
- HTTP/ES/index.html的(該網站的西班牙語版本)
- HTTP/index.php
當用戶進入該站點時,php文件將他重定向到'/ en'或'/ es'文件夾,然後在瀏覽器語言中刪除...然後用戶加載'索引。 html'文件與下面的HTML結構:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>my site in english</title>
<link rel='icon' href='img/favicon.png'>
<!--Styles-->
<link href="css/styles.css" type="text/css" rel="stylesheet">
</head>
<body>
<p>this is an example</p>
<!--Styles-->
<script src="js/script.js"></script>
</body>
</html>
因此,您可以看到,'index.html'定義了位於'root/css','root/img'和'root/js'文件夾的css,img和js文件的路徑,但是網站不會加載它們......我不知道爲什麼?
如果我理解正確,那麼'css/styles.css'將在'en'或'es'目錄中查找'css'目錄。您可能希望在網址前加上「../」,例如'../ CSS/styles.css'。 –
是的,這是問題......謝謝 –