问题描述
项目的结构如下:
要运行我的应用程序,请在apache中使用以下配置:
<VirtualHost *: 80>
ServerName app
DocumentRoot "C: \ xampp \ htdocs \ app \ public"
</VirtualHost>
要访问公共资产(位于公共文件夹内),请使用以下路线:
href = "../ assets / images /"
href = "../ assets / scripts /"
href = "../ assets / styles /"
从那时起,我找不到如何将路径放入href属性中。
执行以下测试:
- 在资源中复制并粘贴.jpg文件。通过
href =" ../ assets /file.jpg "
访问
- 将.jpg文件复制并粘贴到公共位置。通过
href =" ../file.jpg "
访问
- 在公共场所之外复制和粘贴.jpg文件。
href =" ../../file.jpg "
无法访问
注意1:有些人建议我将“上载”文件夹放在公共位置
注2:在public / index.PHP内部,我有此代码
$root = dirname(__DIR__);
$settings['root'] = $root;
$settings['temp'] = $settings['root'] . '/temp';
$settings['public'] = $settings['root'] . '/public';
$settings['uploads'] = $settings['root'] . '/uploads';
注意3:我尝试使用这样的路径网址
<img src="{{ uploads }}/product_1.png">
但是在控制台上出现此错误:
Not allowed to load local resource
解决方法
现在您正在使用相对路径(../file.jpg
)。这是一种棘手的处理方式,通常不是好的做法。而是考虑定义一个指向$_SERVER['DOCUMENT_ROOT']的变量。
define('SITE_ROOT',$_SERVER['DOCUMENT_ROOT']);
echo '<img href="' . SITE_ROOT . '/public/assets">';
,
首先,每个公共文件都应放在您的公共目录中(该文件应在apache允许下被公开)。其余目录应禁止外部浏览。
然后您将没有任何问题,因为允许公共目录浏览您的apache配置文件:
<VirtualHost *: 80>
ServerName app
DocumentRoot "C: \ xampp \ htdocs \ app \ public"
</VirtualHost>