您好我有一个spip网站,我需要在我的本地机器上工作。
我复制了所有内容,该网站似乎与所有数据库“一起工作”。
问题是我认为有一个基本的href设置。
标题中的样式表是这样链接的:
<link rel="stylesheet" type="text/css" href="/css/style.css" />
并没有工作,因为它是去localhost的根,而不是网站文件夹。
然而,将链接更改为此(没有正斜杠)可以很好地工作。
<link rel="stylesheet" type="text/css" href="css/style.css" />
问题是网站上有很多链接都是这样的。有什么地方我可以看看是什么原因造成的?我找不到任何地方的基本href设置,htaccess文件似乎没有任何效果。
答案 0 :(得分:2)
以斜杠(/
)开头的资源URL和链接href不使用<base href="xyz">
值。它们告诉浏览器从主机/域路径的根目录获取资源。
例如,如果你有:
<base href="http://mysite.com/res/">
<!-- style sheet 1 -->
<link rel="stylesheet" type="text/css" href="/css/style.css" />
<!-- style sheet 2 -->
<link rel="stylesheet" type="text/css" href="css/style.css" />
无论基本href值如何, style sheet 1
都会尝试从http://mysite.com/css/style.css
获取它,因为其网址以/
开头,表示主文档根目录。
style sheet 2
但是会使用基本href值并尝试从http://mysite.com/res/css/style.css
可能的解决方案
更新您的HTML / PHP / JSP等,从所有样式表网址,链接,图片等中删除/前缀。您应该可以使用像这样的好编辑器来查找和替换它Notepad ++
丑陋的方式 - 在页面加载后使用某些JS修改这些URL。这有一个问题,即用户在JS完成执行之前可能会看到错误/不完整的内容。
答案 1 :(得分:0)
以/
开头的网址(绝对路径引用)仅在文档位于HTTP服务器上或者其基本URL设置(通过base
标记)引用时才有用绝对HTTP URL。如果您尝试在本地HTML文档中使用它们(没有base
标记),则使用的基本网址将是file://
网址,因此/foo/bar
之类的网址会被解释为{{ 1}},通常不起作用 - 您需要一个file://foo/bar
构成计算机文件系统中资源的完整路径名。
因此,应该可供本地使用的网站不得使用以foo/bar
开头的网址。