如何在Views文件夹中构建项目

时间:2020-06-24 11:41:42

标签: php html css

我想通过以下方式构建项目: Project structure

我想将所有HTML文件放在一个名为views的文件夹中。 partials保存文件head.htmlfooter.htmlheader.html。这是我的视图中包含的三个简短的HTML代码段;这样,当我更改标题中的内容时,不必在每个视图中都单独更改它。但是只在部分中一次。

media保存了我的图像。 cssjs分别是我的样式和Javascript。

这是我想要的结构,但是遇到以下问题:

  1. 如何避免使用http://example.com/views/index.php?我只想要http://example.com/index.php

我通过使用htaccess MOD_REWRITE进行了尝试;但这也弄乱了我的包含物。

  1. 如何从部分开头包含CSS和Javascript?

所以,我的头部像这样:

<link rel="stylesheet" type="text/css" href="css/general.css">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="js/general.js" defer></script>

使用PHP的file_get_contents(),可将其放入所有视图。但是,我需要以某种方式静态链接这两个文件。我该怎么办?

  1. 我的零件加载如下:
<?php
            echo file_get_contents("partials/head.html");
        ?>

此外,我将如何静态地执行此操作? 我使用$_SERVER['DOCUMENT_ROOT']进行了尝试,但这返回了/Users/myName/...,导致我的收录失败。

理想的解决方案是,只要我可以从vereniging href="/css/..."之类的名为src="/media/...的文件夹开始链接所有内容。

编辑: 这是我当前的htaccess内容:

RewriteEngine On

# browser requests PHP
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^\ ]+)\.php
RewriteRule ^/?(.*)\.php$ /$1 [L,R=301]


# check to see if the request is for a PHP file:
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^/?(.*)$ /$1.php

2 个答案:

答案 0 :(得分:0)

第一个问题可通过以下.htaccess解决:

RewriteCond %{REQUEST_URI} !^/(views|css|js|media|partials|php)
RewriteRule (.*) /views/$1

第二个和第三个问题是通过以下方式解决的:

<base href="http://example.com/" target="_self">

答案 1 :(得分:-1)

最好使用laravel或Codeigniter之类的框架来完成您的目标。

  1. 要从您的网址中删除视图,请按如下所示编辑.htaccess

    RewriteEngine开启 RewriteRule ^ views(/.* |)$ $ 1 [L]

  2. 要添加css,您需要退出索引目录,然后访问如下所示的文件夹。

href =“ ../ css / general.css”