PHP - 将资产目录从公共映射到root

时间:2015-05-27 07:21:15

标签: php

我继承了一个PHP框架,该框架是由应用程序本身构建在app目录中以及公共目录中所有面向公众的内容构建的。

- app
- public
   - assets
   - views

因此,为了引用脚本和样式表,它被写为http://site.dev/public/assets/asset.file,就像它所在的那样。

要求将资产引用为/assets/asset.file而不是完整路径,但资产仍必须保留在公共目录中。它似乎毫无意义和随意,但我必须至少尝试做所要求的事情。

Craft CMS的结构与公共目录中的资产类似,但是以我需要的方式写在模板中。

所以只是想知道是否有某种类型的函数或方法可以以这种方式路由/映射要写出的目录?或者只是排除路径中的公共目录?

感谢您提前获得任何帮助。

3 个答案:

答案 0 :(得分:1)

如果您正在使用apache,请查看.htaccess文件。更多信息可以在here

找到
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^/assets/(.*)$ /public/assets/$1
</IfModule>

答案 1 :(得分:1)

您可以使用htaccess重写网址。你可以将site.com/css/style.css放在/ css文件夹不存在的地方,而htaccess实际上将它映射到public / assets / css或者你需要它。

这已被多次覆盖,您只需修改符合您需求的代码即可。

以下是回答的类似SO问题的示例:.htaccess clean URL and relative paths

答案 2 :(得分:0)

public和app目录是分开的,原因很简单:

app目录是你的私人应用程序空间,外面不应该看到它。

所以一般来说:你的应用程序的作者很可能很清楚这个问题(这就是他以这种方式构建它的原因)如果你将你的web服务器文档根目录指向公共目录,你的问题可能会自行解决。很可能路径将自行修复(假设作者真的意识到这一点;)。)。

公共目录中很可能是index.php或app.php,可能需要额外的RewriteRule。然而,这是非常特定的应用程序/框架。也许你找到了自述文件。