加载了样式和CSS,但显示不正确

时间:2018-08-20 16:11:18

标签: php html css import

因此,我尝试将Web HTML CSS模板导入到自制MVC中。 当我打开模板本身时,它可以正常工作。但是,当我通过控制器访问它时,它无法连接到CSS文件,并且无法显示正确的样式。只有空白的HTML,没有任何样式。 这就是我尝试访问它的方式

class NewsController {

public function actionIndex() {
    $newsList = array();
    $newsList = News::getNewsList();

    require_once 'views/index.php';

    return true;
}

这是HTML头中链接CSS的代码

   <link rel="stylesheet" href="css/animate.css" >
        <link rel="stylesheet" href="css/icomoon.css">
        <link rel="stylesheet" href="css/bootstrap.css">
        <link rel="stylesheet" href="css/magnific-popup.css">
        <link rel="stylesheet" href="css/style.css">

这是文件夹的位置(将控制器高亮显示,并且views文件夹是完整的模板)文件夹树:

enter image description here

编辑 我检查检查所有元素已加载,但不显示任何样式。怎么了?enter image description here

3 个答案:

答案 0 :(得分:0)

您需要在CSS路径的开头添加public class Page_Play extends AppCompatActivity { LinearLayout layout_videoAd; private InterstitialAd mInterstitialAd; private RewardedVideoAd mRewardedVideoAd; @Override protected void onPause() { mRewardedVideoAd.pause(this); super.onPause(); } @Override protected void onPostResume() { mRewardedVideoAd.resume(this); super.onPostResume(); } @Override protected void onDestroy() { mRewardedVideoAd.destroy(this); super.onDestroy(); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_page__play); layout_videoAd = findViewById(R.id.layout_videoAd); MobileAds.initialize(this, "myAppIDHere"); //REWARDEDVIDEO_AD mRewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this); loadRewardedVideo(); mRewardedVideoAd.setRewardedVideoAdListener(new RewardedVideoAdListener() { @Override public void onRewardedVideoAdLoaded() { Toast.makeText(Page_Play.this, "video ad loaded", Toast.LENGTH_SHORT).show(); } @Override public void onRewardedVideoAdOpened() { } @Override public void onRewardedVideoStarted() { Toast.makeText(Page_Play.this, "video ad started", Toast.LENGTH_SHORT).show(); } @Override public void onRewardedVideoAdClosed() { loadRewardedVideo(); } @Override public void onRewarded(RewardItem rewardItem) { //Kullanıcıya puan ver - (kazandı) } @Override public void onRewardedVideoAdLeftApplication() { //Kullanıcıya puan ver - (tıkladı) } @Override public void onRewardedVideoAdFailedToLoad(int i) { Toast.makeText(Page_Play.this, "video ad failedtoload"+i, Toast.LENGTH_SHORT).show(); } @Override public void onRewardedVideoCompleted() { } }); layout_videoAd.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //video ad startVideoAd(); } }); } private void loadRewardedVideo() { //test mRewardedVideoAd.loadAd("ca-app-pub-3940256099942544/5224354917", new AdRequest.Builder().build()); } public void startVideoAd(){ if(mRewardedVideoAd.isLoaded()){ mRewardedVideoAd.show(); } } 。这允许浏览器使用绝对文件路径。

答案 1 :(得分:0)

./与绝对文件路径无关。它只是标记了当前的错误。

如果要使用绝对文件路径,请使用php或模板语言中的等效文件路径进行操作:

<link rel="stylesheet" href="<?php echo __ DIR __ . DIRECTORY_SEPARATOR . 'blogv4' . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . 'css' . DIRECTORY_SEPARATOR . 'animate.css'; ?>" />

?>

编辑:由于您的文件夹树的图像,您可以编写:

<link rel="stylesheet" href="blogv4/views/css/animate.css" />

您需要输入包含标头的引导文件(例如index.php)的路径。

答案 2 :(得分:0)

确保正在调用控制器的PHP脚本(在您的情况下,是处理请求的index.php)驻留在资产所在的文档根目录中。 而且,如果我是我的话,我会写一个辅助函数来处理我的资产,例如

headerRight: <Image source={require('xxx.png')} 
                onPress={() => { this.props.navigation.navigate('Next Screen') }} />

例如,您可以通过在返回值的前面添加协议和域前缀来呈现资产所在的绝对路径。

相关问题