【发布时间】:2014-05-12 01:16:39
【问题描述】:
我正在尝试调用位于 ~/vendor/ 目录(请参阅下面的架构)中的 javascript 函数但没有成功。如果我将该 javascript 移动到我的目录 ~/public/js/ 调用成功。
我相信我的问题可能来自我的 .htaccess 文件,但尽管阅读了很多资料,但我没有找到解决它的方法。如果有人能指出我正确的方向,我会很高兴。
这是目录结构(注意 root 和 public/ 中的 .htaccess):
<project name>/
application/
config/
controllers/
models/
views/
public/
css/
images/
js/ <- if placed here, the call succeeds
.htaccess
index.php
vendor/
<third-party code>/
javascript.js <- here, it doesn't
.htaccess
这是 .htaccess 文件的内容:
-
在根目录上:
<IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^$ public/ [L] RewriteRule (.*) public/$1 [L] </IfModule> -
在公共目录中:
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?page=$1 [PT,L] </IfModule>
【问题讨论】:
-
你为什么没有'public/js/Vendor'文件夹。这会解决你的问题。
-
嗯,是的,根据那些重写规则,只有你的
public目录是公开的。更改规则或移动文件。 -
是的,但是这个供应商也有我想使用的 CSS。将与该供应商相关的所有内容放在一个且只有一个目录中,而不是 /public/css/vendor/style.css 和 /public/js/vendor/jscript.js 似乎更简洁
-
你能有'public/Vendor/whatever'文件夹吗?
-
这样说吧,我认为当您可以将 Vendor 文件夹添加到公共文件夹时,重写规则将是 bad 做法(我认为应该这样做去)。
标签: javascript php .htaccess mod-rewrite