Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我无法访问我的css&;使用重写url时的js文件_Php_Css_Url Rewriting - Fatal编程技术网

Php 我无法访问我的css&;使用重写url时的js文件

Php 我无法访问我的css&;使用重写url时的js文件,php,css,url-rewriting,Php,Css,Url Rewriting,在使用“重写url”之前,请正确显示每个url 但当我使用“重写url”时 http://localhost/mgosoft/admin/userreg/ 请帮我解决这个问题,谢谢:)当您使用php时,只需使用$site\u addr=$\u SERVER['HTTP\u HOST'] 并将其附加到所有链接之前,如-> <link rel="stylesheet" type="text/css" href="<?php echo $site_addr; ?>css/sty

在使用“重写url”之前,请正确显示每个url

但当我使用“重写url”时

http://localhost/mgosoft/admin/userreg/


请帮我解决这个问题,谢谢:)

当您使用php时,只需使用
$site\u addr=$\u SERVER['HTTP\u HOST']
并将其附加到所有链接之前,如->

<link rel="stylesheet" type="text/css" href="<?php echo $site_addr; ?>css/style.css">

O-mkar几乎把它钉死了。您可以做的另一件事-如果您不想在整个项目中更改所有引用:使用另一个htaccess行(对于
/css/
目录)自动将它们重写为正确的URL::

Thís将重写任何错误的url,如
http://localhost/mode/movies/view/profile/css/style.css

到固定资源路径
http://localhost/css/style.css

ofc<代码>本地主机
需要匹配正确的外部主机名

根据原始重写的通用性,您应该将资源路径排除在再次重写之外,否则将导致无限重写循环:

RewriteCond %{REQUEST_URI} !^/css/ [NC]
RewriteCond %{REQUEST_URI} !^/images/ [NC]
RewriteCond %{REQUEST_URI} !^/javascript/ [NC]
等等


根据您给出的示例,资源文件是
assets/css/themes/simple/style.css

您基本上需要说:将以该字符串结尾的任何内容重写到根文件夹。 因此,它将是:

RewriteCond %{REQUEST_URI} !^/assets/css/themes/simple/ [NC] #skip, if already rewritten
RewriteRule ^.*/assets/css/themes/simple/([^/]+)$ /assets/css/themes/simple/$1 [L, R=301]
您可以使用这个漂亮的页面来玩:

在上面的示例中输入请求url
http://localhost/mode/movies/assets/css/themes/simple/style.css
要查看,它将变成
http://localhost/assets/css/themes/simple/style.css

ofc。您可以像这样对
/assets/
的每个子文件进行环绕和重定向,这样就不需要为每个文件创建规则

注:如果您使用
[L,R=301]
重定向资源,浏览器缓存也会工作,因为它会记住所请求文件的永久移动。
-如果没有R=301,它会一直认为这是不同的文件。

您也可以尝试此方法 对于您的本地版本,请添加

<base href="//localhost/mywebsite" />

到头部

对于您的实时版本,将其更改为

<base href="//your.domain.here" />


参考位于

您可以使用base标记重写base,而无需更改相对路径,此处的文档->u此注释(如果有帮助;)@Omi这家伙是对的你也可以用这个method@dognose我的路径如下:assets/css/themes/simple/style.css我应该做什么change@Omi为此添加了一个示例。@dognose资产下不仅有一个css,还有许多css
<base href="//your.domain.here" />