URL 重写后缺少 CSS 文件和图像
Posted
技术标签:
【中文标题】URL 重写后缺少 CSS 文件和图像【英文标题】:Missing CSS file and images after URL rewrite 【发布时间】:2012-01-03 05:12:48 【问题描述】:我正在尝试使用模式重写使用户友好的 URL。 我的问题是,在为我的 URL 提供“名称”之类的类别后,当我使用新 URL 调用页面时,它无法加载 CSS 文件或图像。
我有一个类似的链接:
localhost/mywebsite/project?id=22
新链接类似于
localhost/mywebsite/project/22/myproject.project
ht访问代码:
RewriteRule ^project/([0-9]*)/.*\.project$ /project.php?project=$1 [L]
(它可能不是 100% 正确,但我现在无法访问我的代码,所以我只是写了这个,它在原始源上运行良好)
我的根目录是 localhost/mywebsite/
我的 CSS 文件在 css/style.css 中
localhost/mywebsite/css/style.css
我的 htaccess
localhost/mywebsite/.htaccess
我的 project.php 文件在
localhost/mywebsite/project.php
所以在项目页面中我可以使用相对路径访问 CSS 文件,
<link href="css/style.css" rel="stylesheet" type="text/css" />
但是当我使用重写的 URL 页面时找不到 CSS 文件。
我不能使用绝对路径和域名,因为我还没有域名!它可以是任何东西。
一种方法是按照类似问题的建议使用域的相对路径 本地主机/mywebsite/project.php 当我在本地运行我的脚本时,我的根目录是 本地主机 所以css链接应该是这样的
href="mywebsite/css/style.css"
但是当我上线时,我应该将所有链接更改为可能类似于
href="/css/style.css"
这似乎需要很多工作
【问题讨论】:
【参考方案1】:您必须在 connection.php 中定义基本路径或服务器视图路径,并且每当您想要该路径时,将其设为全局路径。然后将调用该变量,并且 css 或图像将采用整个路径。
例如 $SVP="http://www.example.com/"
全球 $SVP; 回声 $SVP;
所以
【讨论】:
【参考方案2】:将图片插入到与 css href 链接具有相同相对路径的同一文件中,在浏览器中加载页面,在 Internet Explorer 中右键单击图片,单击属性,您应该会看到相对路径实际指向的位置.
【讨论】:
显然我应该在他的链接上包含 mywebsite 因为 localhost 被认为是我的根目录,而 /mywebsite/ 文件夹只是另一个目录,因此它应该包含在链接中。当我上线时,我无法更改所有链接! 您无法更改所有链接,这是可以理解的麻烦,因此请保持所有路径相对,但使用正确的相对位置调整每个路径。注意:我不是说使用绝对路径,我的意思是检查绝对路径并调整你的相对路径,直到你做对了。您可以使用 ../ 上一个文件夹。【参考方案3】:为您的本地版本添加
<base href="//localhost/mywebsite" />
到头部
并为您的实时版本将其更改为
<base href="//your.domain.here" />
参考http://www.w3.org/TR/html4/struct/links.html#h-12.4
【讨论】:
是的,但也有图片,上线后我无法为每张图片更改域名 @max,base
标签也适用于图像。jsfiddle.net/gaby/JE656 的示例
谢谢,解决了我的头痛问题。以上是关于URL 重写后缺少 CSS 文件和图像的主要内容,如果未能解决你的问题,请参考以下文章