我继承了一个PHP框架,该框架是由应用程序本身构建在app目录中以及公共目录中所有面向公众的内容构建的。
- app
- public
- assets
- views
因此,为了引用脚本和样式表,它被写为http://site.dev/public/assets/asset.file
,就像它所在的那样。
要求将资产引用为/assets/asset.file
而不是完整路径,但资产仍必须保留在公共目录中。它似乎毫无意义和随意,但我必须至少尝试做所要求的事情。
Craft CMS的结构与公共目录中的资产类似,但是以我需要的方式写在模板中。
所以只是想知道是否有某种类型的函数或方法可以以这种方式路由/映射要写出的目录?或者只是排除路径中的公共目录?
感谢您提前获得任何帮助。
答案 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。然而,这是非常特定的应用程序/框架。也许你找到了自述文件。