javascript - .htaccess文件不加载js和css

标签 javascript php css apache .htaccess

我在 youtube 上尝试了 howcode 提供的 MVC 教程,但发现 htaccess 不允许加载我的 css 和 js 文件。

.htaccess 文件:

RewriteEngine On
RewriteRule ^([^/]+)/? index.php?url=$1 [L,QSA]

我试图通过互联网找到一些解决方案,但最终产生了其他错误。我在规则之前使用了条件:

RewriteCond %{REQUEST_FILENAME} -f

但这似乎不起作用。

元素结构 -

我的元素中有这些文件

  1. 类(文件夹)
  2. Controller (文件夹)
  3. View (文件夹)
  4. .htaccess
  5. index.php
  6. 路由.php

在“ View ”文件夹中,我有-

  1. css(文件夹)
  2. js(文件夹)
  3. index.php
  4. header.php
  5. 页脚.php

我的所有导入都在 header.php 中,而 header.php 包含在 index.php 中

我的链接CSS代码是-

<link href="./Views/css/style.css" rel='stylesheet' type='text/css' media="all" />

最佳答案

I used conditions before the rule:

RewriteCond %{REQUEST_FILENAME} -f

那个条件与您想要实现的目标相反 - 逻辑是相反的。该条件测试文件是否存在,并且仅当存在时才处理RewriteRule。仅当请求的文件存在时,您才需要执行该规则。例如:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/? index.php?url=$1 [L,QSA]

注意CondPattern 上的! 前缀。这否定了条件。


更新:请注意上面的RewriteRule 模式(即^([^/]+)/?) 排除对文档根目录的请求(即 http://example.com/ - 一个 URL 路径)。因此,对于该请求,url GET 参数在您的 PHP 脚本中确实是未定义。但是,这应该没问题,前提是您在使用该变量之前检查它是否存在(正如您应该做的那样)。例如:

$url = isset($_GET['url']) ? $_GET['url'] : null;

如果您明确希望为此类请求设置此参数(并处理您的指令)(尽管不必要),那么您需要将 RewriteRule pattern^([^/]+)/?^([^/]*)/?,即。将 +(1 或更多)更改为 *(0 或更多)。

关于javascript - .htaccess文件不加载js和css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45152436/

相关文章:

javascript - 使用模拟数据提交表单验证测试

javascript - Ajax Loader 和链式选择框

javascript - 通过javascript使用按钮id选择多个单选按钮

php - 无法使用 Twitter V1.1 API 验证用户

php - WordPress - 自定义更改密码页面

html - 对齐文本和微调器垂直居中

javascript - Windows XP 上的 Chrome 中不显示 3D 变换

javascript - 类型数组 :- Cannot invoke an expression whose type lacks a call signature 的 typescript 错误

html - 没有嵌套的多行 CSS 网格

css - Vapor - 服务器端 Swift : Doesn't find css